/* 事業内容・コラムの子ページ共通スタイル。
   トップ（top-v5）の配色・書体を引き継ぎ、子ページは読み物として落ち着いた密度にする。
   規約: サイズはトークン（--fs-*）、:hover は (hover:hover) and (pointer:fine) で囲う、
   ブレークポイントの上書きは基底規則より後ろ、飾りのループアニメーションは足さない。 */
:root{
  --ink:#173A35;--sub:#4F625E;--line:#D3DAD8;--ground:#F4F3F2;--paper:#FFFFFF;
  --coral:#F47B3F;--coral-d:#E8602C;--coral-ink:#C94E1C;--coral-pale:#FDEDE5;
  --mint:#17A3B6;--mint-d:#0E8C9C;--mint-ink:#0B7584;--mint-pale:#E7F5F7;
  --cta:#EA5E1C;--cta-ink:#C2470C;
  --dsp:"Google Sans Flex","LINE Seed JP",sans-serif;
  --jp:"LINE Seed JP","Hiragino Sans","Yu Gothic",sans-serif;
  --fs-display:clamp(64px,11vw,168px);
  --fs-figure:clamp(44px,5.4vw,76px);
  --fs-h1:clamp(30px,4.2vw,54px);
  --fs-h2:clamp(24px,2.8vw,36px);
  --fs-h3:clamp(19px,1.6vw,22px);
  --fs-lead:clamp(17px,1.45vw,20px);
  --fs-body:16px;--fs-sub:14px;--fs-note:12px;
  --gutter:48px;--max:1240px;--radius:20px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--jp);font-size:var(--fs-body);line-height:1.9;font-feature-settings:"palt";-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:anywhere;line-break:strict}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0}
a{color:inherit}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{text-wrap:balance;line-height:1.45;font-weight:800}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:20;background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;font-size:var(--fs-sub);font-weight:700;text-decoration:none}
.skip:focus{top:12px}
:focus-visible{outline:3px solid var(--mint);outline-offset:3px}
.wrap{width:100%;max-width:calc(var(--max) + var(--gutter)*2);margin:0 auto;padding:0 var(--gutter)}
.dsp{font-family:var(--dsp);font-weight:600;letter-spacing:-.045em;line-height:.9}
.num{font-family:var(--dsp);font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.nw{white-space:nowrap}
.note{font-size:var(--fs-note);color:var(--sub);line-height:1.7}

/* ---------- header ---------- */
.gh{position:sticky;top:0;z-index:10;background:rgba(244,243,242,.92);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid transparent}
.gh-in{height:80px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.gh-logo img{height:28px;width:auto}
.gh-nav{display:flex;align-items:center;gap:24px;font-size:var(--fs-sub);font-weight:700}
.gh-nav a{text-decoration:none;padding:6px 0;background:linear-gradient(var(--ink),var(--ink)) 0 100%/0 2px no-repeat;transition:background-size .3s}
.gh-nav a[aria-current="page"],.gh-nav a[aria-current="true"]{background-size:100% 2px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 28px;border-radius:999px;font-weight:700;font-size:var(--fs-body);text-decoration:none;white-space:nowrap;transition:background .2s,transform .2s}
.btn-cta{background:var(--cta);color:#fff}
.btn-cta:active{transform:scale(.98);background:var(--cta-ink)}
.btn-line{border:1.5px solid var(--ink);color:var(--ink)}
.gh .btn{min-height:44px;padding:0 20px;font-size:var(--fs-sub)}
.gh-nav .btn-cta{background:var(--cta);color:#fff}
.gh-menu{display:none}
.gh-menu summary{list-style:none;cursor:pointer;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center}
.gh-menu summary::-webkit-details-marker{display:none}
.gh-menu nav{position:absolute;left:0;right:0;top:64px;background:var(--paper);border-bottom:1px solid var(--line);padding:8px 20px 20px;display:flex;flex-direction:column}
.gh-menu nav a{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);font-weight:700;text-decoration:none}
.gh-menu nav a:last-child{border-bottom:0}
@media (hover:hover) and (pointer:fine){
  .gh-nav a:hover{background-size:100% 2px}
  .btn-cta:hover{background:var(--cta-ink)}
  .btn-line:hover{background:var(--ink);color:#fff}
}

/* ---------- breadcrumb / page head ---------- */
.crumb{padding-top:20px;font-size:var(--fs-note);color:var(--sub)}
.crumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.crumb li+li::before{content:"/";margin-right:6px;color:var(--line)}
.crumb a{text-decoration:none}
.ph{padding:56px 0 72px;display:flex;flex-direction:column;gap:28px}
.ph-word{font-size:var(--fs-display)}
.ph-row{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:64px;padding-top:28px;border-top:1px solid var(--line);align-items:start}
.ph h1{font-size:var(--fs-h1)}
.ph-lead{font-size:var(--fs-lead);line-height:1.95;color:var(--sub)}
.ph-lead+.ph-lead{margin-top:12px}

/* ---------- generic sections ---------- */
.sec{padding:104px 0}
.sec.white{background:var(--paper)}
.sec-h{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:start;margin-bottom:56px}
.sec-h h2{font-size:var(--fs-h2)}
.sec-h p{color:var(--sub);font-size:var(--fs-body);line-height:2}
.sec-h.single{grid-template-columns:minmax(0,1fr);gap:16px;max-width:760px}
.link-go{display:inline-flex;align-items:center;gap:12px;font-weight:700;text-decoration:none;font-size:var(--fs-body)}
.link-go i{width:32px;height:32px;border-radius:50%;background:var(--mint-d);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-style:normal;transition:transform .3s}
.link-go.coral i{background:var(--cta)}
@media (hover:hover) and (pointer:fine){.link-go:hover i{transform:translateX(4px)}}
.pill{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:999px;border:1px solid currentColor;font-size:var(--fs-note);font-weight:700;white-space:nowrap}

/* ---------- facts strip ---------- */
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}
.facts>div{padding:28px 28px 30px 0;display:flex;flex-direction:column;gap:6px}
.facts>div+div{padding-left:28px;border-left:1px solid var(--line)}
.facts strong{font-size:var(--fs-figure);line-height:1;color:var(--accent,var(--coral-d))}
.facts strong small{font-size:.42em;margin-left:2px}
.facts span{font-size:var(--fs-sub);font-weight:700}
.facts em{font-style:normal;font-size:var(--fs-note);color:var(--sub)}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:40px minmax(0,1fr) 24px;gap:12px;align-items:baseline;padding:24px 0;font-weight:800;font-size:var(--fs-h3);line-height:1.6}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";font-family:var(--dsp);color:var(--accent,var(--coral-d));font-size:var(--fs-h3)}
.faq summary::after{content:"+";font-family:var(--dsp);font-size:24px;text-align:right;transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 36px 28px 52px;color:var(--sub);line-height:2}

/* ---------- CTA band ---------- */
.cta-band{background:var(--ink);color:#fff;padding:96px 0}
.cta-band .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;align-items:end}
.cta-band h2{font-size:var(--fs-h2)}
.cta-band p{margin-top:16px;color:rgba(255,255,255,.86);font-size:var(--fs-lead);line-height:1.9}
.cta-band .acts{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.cta-band .btn-line{border-color:rgba(255,255,255,.6);color:#fff}

/* ---------- footer ---------- */
.gf{background:var(--ink);color:#fff;border-top:1px solid rgba(255,255,255,.14);padding:72px 0 40px}
.gf-top{display:flex;justify-content:space-between;gap:48px;align-items:flex-start}
.gf-top>p{font-size:var(--fs-h3);font-weight:800}
.gf nav{display:grid;grid-template-columns:repeat(3,auto);gap:14px 48px;font-size:var(--fs-sub);color:rgba(255,255,255,.82)}
.gf nav a{text-decoration:none}
.gf-bottom{margin-top:56px;padding-top:24px;border-top:1px solid rgba(255,255,255,.18);display:flex;justify-content:space-between;align-items:flex-end}
.gf-bottom .dsp{font-size:clamp(56px,8vw,112px);color:rgba(255,255,255,.12)}
.gf-bottom small{font-size:var(--fs-note);color:rgba(255,255,255,.6)}

/* =========================================================
   /service/  事業内容（親）
   ========================================================= */
.biz{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:28px}
.lane{border-radius:28px;overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit;background:var(--paper);border:1px solid var(--line);transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s}
.lane-line{grid-column:span 7}
.lane-ai{grid-column:span 5}
.lane-xr{grid-column:span 12;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.lane-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--mint-pale)}
.lane-media img{width:100%;height:100%;object-fit:cover}
.lane-ai .lane-media{background:var(--coral-pale)}
.lane-xr .lane-media{aspect-ratio:auto;min-height:100%;background:#0F2925}
.lane-body{padding:36px 36px 40px;display:flex;flex-direction:column;gap:16px;flex-grow:1}
.lane-word{font-size:clamp(64px,7vw,104px)}
.lane-line .lane-word{color:var(--mint-d)}
.lane-ai .lane-word{color:var(--coral-d)}
.lane-xr{background:var(--ink);color:#fff;border-color:var(--ink)}
.lane-xr .lane-word{color:#fff}
.lane h2{font-size:var(--fs-h3)}
.lane p{color:var(--sub);line-height:1.95}
.lane-xr p{color:rgba(255,255,255,.86)}
.lane ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.lane li{font-size:var(--fs-note);font-weight:700;height:28px;padding:0 12px;border-radius:999px;border:1px solid var(--line);display:inline-flex;align-items:center}
.lane-xr li{border-color:rgba(255,255,255,.35)}
.lane .link-go{margin-top:auto;padding-top:8px}
.lane-ai .link-go i{background:var(--cta)}
.lane-xr .link-go i{background:#fff;color:var(--ink)}
@media (hover:hover) and (pointer:fine){.lane:hover{transform:translateY(-6px);box-shadow:0 28px 56px -32px rgba(23,58,53,.45)}}

.combo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--ink)}
.combo>div{padding:32px 32px 36px 0;display:flex;flex-direction:column;gap:12px}
.combo>div+div{padding-left:32px;border-left:1px solid var(--line)}
.combo h3{font-size:var(--fs-h3)}
.combo p{color:var(--sub);line-height:1.95}
.combo .tag{font-family:var(--dsp);font-weight:600;font-size:var(--fs-sub);letter-spacing:.02em;color:var(--sub)}
.combo .tag b{color:var(--mint-d)}
.combo .tag b+b{color:var(--coral-d)}

.works{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.works figure{display:flex;flex-direction:column;gap:14px}
.works img{border-radius:14px;aspect-ratio:16/10;object-fit:cover;background:#dfe5e3}
.works figcaption{font-size:var(--fs-sub);font-weight:700;line-height:1.6}
.works figcaption span{display:block;font-size:var(--fs-note);color:var(--sub);font-weight:400}

.others{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line)}
.others>div{padding:24px 20px 8px 0;display:flex;flex-direction:column;gap:8px}
.others>div+div{padding-left:20px;border-left:1px solid var(--line)}
.others h3{font-size:var(--fs-body)}
.others p{font-size:var(--fs-sub);color:var(--sub);line-height:1.8}

.term{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.term>div{background:var(--paper);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column;gap:6px}
.sec.white .term>div{background:var(--ground)}
.term strong{font-size:clamp(34px,3.6vw,48px);line-height:1.05}
.term span{font-weight:700}

/* =========================================================
   /service/line|ai|xr  個ページ（各ページが --accent を持つ）
   ========================================================= */
.svc-line{--accent:var(--mint-d);--accent-pale:var(--mint-pale)}
.svc-ai{--accent:var(--coral-d);--accent-pale:var(--coral-pale)}
.svc-xr{--accent:#7FD3DF;--accent-pale:#21453F}

.hero{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:56px;align-items:center;padding:48px 0 88px}
.hero-copy{display:flex;flex-direction:column;gap:24px}
.hero-word{font-size:clamp(88px,13vw,200px);color:var(--accent)}
.hero h1{font-size:var(--fs-h1)}
.hero .ph-lead{max-width:34em}
.hero-acts{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;padding-top:8px}
.hero-media{position:relative;border-radius:28px;overflow:hidden;background:var(--accent-pale);aspect-ratio:4/3}
.hero-media img{width:100%;height:100%;object-fit:cover}
.hero-media figcaption{position:absolute;left:16px;bottom:16px;background:rgba(23,58,53,.78);color:#fff;font-size:var(--fs-note);font-weight:700;padding:6px 12px;border-radius:999px}

/* LINE: 3つの開発形態 */
.forms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.forms article{background:var(--paper);border-radius:var(--radius);padding:32px;display:flex;flex-direction:column;gap:14px;border-top:4px solid var(--accent)}
.forms .k{font-family:var(--dsp);font-weight:600;font-size:clamp(26px,2.4vw,34px);letter-spacing:-.02em;line-height:1.1;color:var(--accent)}
.forms h3{font-size:var(--fs-h3)}
.forms p{color:var(--sub);line-height:1.95}
.forms figure{margin-top:auto;background:var(--accent-pale);border-radius:14px;padding:20px;display:flex;justify-content:center}
.forms figure img{max-height:260px;width:auto}

.feat{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink)}
.feat>div{padding:26px 24px 30px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.feat>div:not(:nth-child(4n+1)){padding-left:24px;border-left:1px solid var(--line)}
.feat .no{font-family:var(--dsp);font-weight:600;color:var(--accent);font-size:var(--fs-sub)}
.feat h3{font-size:var(--fs-body)}
.feat p{font-size:var(--fs-sub);color:var(--sub);line-height:1.85}

.cmp{width:100%;border-collapse:collapse;background:var(--paper);border-radius:var(--radius);overflow:hidden;font-size:var(--fs-body)}
.cmp th,.cmp td{padding:20px 24px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);line-height:1.8}
.cmp thead th{background:var(--ink);color:#fff;font-size:var(--fs-sub)}
.cmp thead th.us{background:var(--accent,var(--mint-d))}
.cmp tbody th{width:24%;font-size:var(--fs-sub)}
.cmp td.us{background:var(--accent-pale,var(--mint-pale));font-weight:700}
.cmp tr:last-child>*{border-bottom:0}

.case{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:48px;align-items:center}
.case+.case{margin-top:72px}
.case figure img{border-radius:var(--radius);aspect-ratio:16/10;object-fit:cover}
.case-body{display:flex;flex-direction:column;gap:16px}
.case-body .cl{font-size:var(--fs-sub);font-weight:700;color:var(--sub)}
.case-body h3{font-size:var(--fs-h3)}
.case-body p{color:var(--sub);line-height:1.95}
.case-nums{display:flex;flex-wrap:wrap;gap:12px 32px;padding-top:8px}
.case-nums div{display:flex;flex-direction:column}
.case-nums strong{font-size:clamp(34px,3.4vw,46px);line-height:1.1;color:var(--accent)}
.case-nums span{font-size:var(--fs-note);color:var(--sub)}
.case-person{display:flex;align-items:center;gap:24px;background:var(--paper);border-radius:var(--radius);padding:24px}
.case-person img{width:120px;height:132px;object-fit:cover;object-position:top;border-radius:14px}
.case-person p{display:flex;flex-direction:column;font-size:var(--fs-sub);color:var(--sub);line-height:1.7}
.case-person b{font-size:var(--fs-h3);color:var(--ink)}
.quote{border-left:3px solid var(--accent);padding:4px 0 4px 20px;font-weight:700;line-height:1.9}
.quote cite{display:block;margin-top:6px;font-style:normal;font-size:var(--fs-note);color:var(--sub);font-weight:400}

/* AI: 業務の例・開発してきたAI */
.uses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.uses article{background:var(--paper);border-radius:var(--radius);padding:32px;display:flex;flex-direction:column;gap:12px}
.uses .ind{align-self:flex-start;color:var(--accent)}
.uses h3{font-size:var(--fs-h3)}
.uses p{color:var(--sub);line-height:1.95}
.built{counter-reset:b;border-top:1px solid var(--ink)}
.built li{list-style:none;display:grid;grid-template-columns:96px minmax(0,4fr) minmax(0,7fr);gap:32px;padding:32px 0;border-bottom:1px solid var(--line);align-items:baseline}
.built li::before{counter-increment:b;content:counter(b,decimal-leading-zero);font-family:var(--dsp);font-weight:600;font-size:clamp(34px,3vw,44px);color:var(--accent);line-height:1}
.built h3{font-size:var(--fs-h3)}
.built p{color:var(--sub);line-height:1.95}
.aidd{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:center}
.aidd figure img{border-radius:var(--radius);aspect-ratio:4/3;object-fit:cover}
.aidd-body{display:flex;flex-direction:column;gap:18px}
.aidd-body h2{font-size:var(--fs-h2)}
.aidd-body p{color:var(--sub);line-height:2}
.aidd-links{display:flex;flex-direction:column;gap:14px;padding-top:6px}

/* XR: 暗い面 */
.svc-xr .sec:not(.xr-dark .sec),.svc-xr .faq{--accent:var(--mint-d)}
.uses.xr-built{grid-template-columns:repeat(2,minmax(0,1fr))}
.uses .link-go{margin-top:auto;padding-top:8px}
.sec.white .uses article{background:var(--ground)}
.svc-xr .xr-dark{background:var(--ink);color:#fff}
.svc-xr .xr-dark .ph-lead,.svc-xr .xr-dark .sec-h p{color:rgba(255,255,255,.84)}
.svc-xr .xr-dark .crumb{color:rgba(255,255,255,.7)}
.svc-xr .xr-dark .crumb li+li::before{color:rgba(255,255,255,.3)}
.svc-xr .hero-media{background:#0F2925}
.xr-terms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid rgba(255,255,255,.5)}
.xr-terms dl{display:contents}
.xr-terms div{padding:28px 28px 32px 0;display:flex;flex-direction:column;gap:10px}
.xr-terms div+div{padding-left:28px;border-left:1px solid rgba(255,255,255,.2)}
.xr-terms dt{font-family:var(--dsp);font-weight:600;font-size:clamp(40px,4.4vw,64px);line-height:1;color:var(--accent)}
.xr-terms dt small{display:block;margin-top:10px;font-family:var(--jp);font-size:var(--fs-sub);font-weight:700;color:#fff;letter-spacing:0}
.xr-terms dd{color:rgba(255,255,255,.84);line-height:1.95}
.merits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.merits article{border-top:2px solid var(--ink);padding-top:24px;display:flex;flex-direction:column;gap:12px}
.merits h3{font-size:var(--fs-h3)}
.merits p{color:var(--sub);line-height:1.95}

.rel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}

/* =========================================================
   /column/  一覧
   ========================================================= */
.cats{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px}
.cats a{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 18px;border-radius:999px;border:1px solid var(--line);background:var(--paper);font-size:var(--fs-sub);font-weight:700;text-decoration:none}
.cats a[aria-current="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.cats a span{font-family:var(--dsp);font-weight:600;color:var(--sub)}
.cats a[aria-current="true"] span{color:rgba(255,255,255,.7)}
.cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 32px}
.colc{display:flex;flex-direction:column;gap:14px;text-decoration:none;color:inherit}
.colc-img{border-radius:16px;overflow:hidden;aspect-ratio:1200/630;background:var(--paper)}
.colc-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.colc-img.none{display:flex;align-items:flex-end;padding:22px;background:var(--ink);color:var(--coral)}
.colc-img.none b{font-family:var(--dsp);font-weight:600;font-size:clamp(30px,3vw,40px);line-height:1;letter-spacing:-.03em}
.colc-meta{display:flex;gap:12px;align-items:center;color:var(--sub)}
.colc-meta time{font-family:var(--dsp);font-size:var(--fs-sub);font-weight:600}
.colc-meta .pill{color:var(--mint-ink)}
.colc h2,.colc h3{font-size:var(--fs-h3);line-height:1.6}
.colc h2 span,.colc h3 span{background:linear-gradient(var(--coral-d),var(--coral-d)) 0 100%/0 2px no-repeat;transition:background-size .5s}
@media (hover:hover) and (pointer:fine){
  .colc:hover .colc-img img{transform:scale(1.05)}
  .colc:hover h2 span,.colc:hover h3 span{background-size:100% 2px}
}
.col-lead{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:center;padding-bottom:64px;margin-bottom:64px;border-bottom:1px solid var(--line)}
.col-lead .colc-img{border-radius:24px}
.col-lead h2{font-size:var(--fs-h2)}
.col-lead p{color:var(--sub)}

/* =========================================================
   /column/<slug>/  記事
   ========================================================= */
.art{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:72px;align-items:start;padding-bottom:96px}
.art-head{padding:40px 0 48px;max-width:860px}
.art-head .colc-meta{margin-bottom:20px}
.art-head h1{font-size:var(--fs-h1);line-height:1.4}
.art-head .by{margin-top:20px;font-size:var(--fs-sub);color:var(--sub)}
.art-eye{border-radius:24px;overflow:hidden;margin-bottom:48px;background:var(--paper)}
.art-eye img{width:100%}
.toc{background:var(--paper);border-radius:var(--radius);padding:28px 32px;margin-bottom:48px}
.toc h2{font-size:var(--fs-body);margin-bottom:12px}
.toc ol{list-style:none;counter-reset:t;display:flex;flex-direction:column;gap:6px}
.toc li{font-size:var(--fs-sub);line-height:1.7}
.toc li.l2{counter-increment:t;display:grid;grid-template-columns:32px minmax(0,1fr)}
.toc li.l2::before{content:counter(t,decimal-leading-zero);font-family:var(--dsp);font-weight:600;color:var(--coral-d)}
.toc li.l3{padding-left:32px;color:var(--sub)}
.toc a{text-decoration:none}
.toc details>summary{cursor:pointer;font-size:var(--fs-sub);font-weight:700;color:var(--mint-ink);margin-top:8px}
.prose{font-size:17px;line-height:2.05;max-width:760px;word-break:normal;line-break:strict}
.prose>*+*{margin-top:1.3em}
.prose h2{font-size:var(--fs-h2);margin-top:2.4em;padding-top:1em;border-top:1px solid var(--ink);scroll-margin-top:100px;line-height:1.5}
.prose h3{font-size:var(--fs-h3);margin-top:2em;padding-left:14px;border-left:4px solid var(--coral);scroll-margin-top:100px}
.prose h4{font-size:var(--fs-body);margin-top:1.8em}
.prose p{color:#22413C}
.prose a{color:var(--mint-ink);text-decoration-thickness:1px;text-underline-offset:3px}
.prose ul,.prose ol{padding-left:1.4em}
.prose li+li{margin-top:.4em}
.prose li::marker{color:var(--coral-d)}
.prose strong{background:linear-gradient(transparent 62%,rgba(244,123,63,.22) 62%)}
.prose figure{margin:2em 0}
.prose figure img{margin:0 auto;border-radius:12px}
.prose figcaption{text-align:center;font-size:var(--fs-sub);color:var(--sub);margin-top:10px}
.prose hr{border:0;border-top:1px dashed var(--line);margin:2.4em 0}
.prose blockquote{border-left:3px solid var(--line);padding-left:20px;color:var(--sub)}
.art-side{position:sticky;top:104px;display:flex;flex-direction:column;gap:24px}
.side-box{background:var(--paper);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;gap:12px}
.side-box h2{font-size:var(--fs-body)}
.side-box p{font-size:var(--fs-sub);color:var(--sub);line-height:1.8}
.side-box .btn{min-height:48px;font-size:var(--fs-sub)}
.side-box.ink{background:var(--ink);color:#fff}
.side-box.ink p{color:rgba(255,255,255,.84)}
.art-foot{max-width:760px;margin-top:64px;padding-top:32px;border-top:1px solid var(--ink);display:flex;flex-direction:column;gap:20px}
.art-foot .old{font-size:var(--fs-note);color:var(--sub)}
.author{display:flex;gap:16px;align-items:center}
.author img{width:64px;height:64px;border-radius:50%;object-fit:cover;background:#fff}
.author p{font-size:var(--fs-sub);line-height:1.7;color:var(--sub)}
.author b{display:block;color:var(--ink)}

/* =========================================================
   /news/  お知らせ
   ========================================================= */
.news-list{list-style:none;border-top:1px solid var(--ink)}
.news-list li{border-bottom:1px solid var(--line)}
.nw-row{display:grid;grid-template-columns:110px auto minmax(0,1fr) 32px;gap:24px;align-items:center;padding:26px 0;text-decoration:none;color:inherit}
.nw-row time{font-family:var(--dsp);font-weight:600;font-size:var(--fs-sub);color:var(--sub)}
.nw-row .pill{color:var(--mint-ink);justify-self:start}
.nw-row h2,.nw-row h3{font-size:var(--fs-h3);line-height:1.6}
.nw-row i{width:32px;height:32px;border-radius:50%;background:var(--mint-d);color:#fff;display:inline-flex;align-items:center;justify-content:center;transition:transform .3s}
@media (hover:hover) and (pointer:fine){.nw-row:hover i{transform:translateX(4px)}.nw-row:hover h2,.nw-row:hover h3{color:var(--mint-ink)}}
.news-art{max-width:860px;padding-bottom:24px}
.news-more{max-width:860px;margin-top:72px}
.news-more h2{font-size:var(--fs-h2);margin-bottom:24px}
.prose iframe{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;border-radius:12px;background:var(--ink)}
.prose a[data-btn]{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border-radius:999px;background:var(--cta);color:#fff;font-weight:700;text-decoration:none}
.prose .ended{background:var(--paper);border-left:4px solid var(--coral);padding:14px 18px;border-radius:8px;font-weight:700}

/* =========================================================
   /cases/  導入事例
   ========================================================= */
.case-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);margin-bottom:48px;max-width:1100px}
.case-meta div{padding:18px 20px 18px 0;display:flex;flex-direction:column;gap:4px}
.case-meta dt{font-size:var(--fs-note);color:var(--sub);font-weight:700}
.case-meta dd{font-weight:700;line-height:1.6}
.case-facts{--accent:var(--coral-d);margin-bottom:56px;max-width:1100px}
.case-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:72px;align-items:start}
.case-layout .prose blockquote{border-left:3px solid var(--coral);color:var(--ink);font-weight:700;padding:4px 0 4px 20px}
.case-layout .prose blockquote cite{display:block;margin-top:8px;font-style:normal;font-weight:400;font-size:var(--fs-sub);color:var(--sub)}
.case-layout .prose blockquote p{color:inherit}
.case-person{max-width:760px;margin-top:48px}
.case-cta{margin-top:56px;max-width:1100px;background:var(--paper);border-radius:24px;padding:40px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center}
.case-cta h2{font-size:var(--fs-h3)}
.case-cta p{margin-top:8px;color:var(--sub)}
.case-num{flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:6px;background:var(--ink)}
.case-num b{font-size:clamp(56px,6vw,88px)!important;color:var(--coral)}
.case-num b small{font-size:.45em}
.case-num span{color:#fff;font-weight:700;font-size:var(--fs-sub)}
.case-card-p{color:var(--sub);font-size:var(--fs-sub);line-height:1.8}
.cases-list{grid-template-columns:repeat(2,minmax(0,1fr))}

/* =========================================================
   /careers/  採用情報
   ========================================================= */
.career-photo{border-radius:28px;overflow:hidden;margin-bottom:24px}
.career-photo img{width:100%;aspect-ratio:21/9;object-fit:cover}
.poss{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.pos{background:var(--paper);border-radius:24px;padding:32px;display:flex;flex-direction:column;gap:16px;text-decoration:none;color:inherit;border:1px solid var(--line);transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
.pos-top{display:flex;justify-content:space-between;align-items:center}
.pos-no{font-size:clamp(36px,3.4vw,48px);color:var(--coral-d);line-height:1}
.pill.urgent{color:var(--cta-ink);border-color:var(--cta);background:var(--coral-pale)}
.pos h3{font-size:clamp(22px,2vw,28px)}
.co-table{border-top:1px solid var(--ink)}
.co-table .co-row{display:grid;grid-template-columns:minmax(120px,40%) minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.co-table dt{font-size:var(--fs-sub);color:var(--sub);font-weight:700}
.co-table dd{font-weight:700;line-height:1.7}
.pos>p{color:var(--sub);line-height:1.9}
.pos-q{border-left:3px solid var(--mint-d);padding-left:16px;font-weight:700;line-height:1.8}
.pos-q cite{display:block;margin-top:6px;font-style:normal;font-weight:400;font-size:var(--fs-note);color:var(--sub)}
.pos-meta{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:16px;margin-top:auto}
.pos-meta div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px;font-size:var(--fs-sub)}
.pos-meta dt{color:var(--sub)}
.pos-meta dd{font-weight:700}
@media (hover:hover) and (pointer:fine){.pos:hover{transform:translateY(-6px);box-shadow:0 28px 56px -32px rgba(23,58,53,.45)}}
.sub-h{font-size:var(--fs-h3);margin:72px 0 24px}
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink)}
.steps li{padding:24px 24px 24px 0;display:flex;flex-direction:column;gap:8px}
.steps li+li{padding-left:24px;border-left:1px solid var(--line)}
.steps .num{color:var(--coral-d);font-size:var(--fs-h3)}
.steps h3{font-size:var(--fs-body)}
.steps p{color:var(--sub);font-size:var(--fs-sub);line-height:1.85}
.mems{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 24px}
.mem{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:inherit}
.mem-av{aspect-ratio:1;border-radius:20px;overflow:hidden;background:var(--mint-pale);display:flex;align-items:center;justify-content:center;margin-bottom:8px}
.mem-av img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.mem-initial{font-size:clamp(48px,6vw,80px);font-weight:800;color:var(--mint-d)}
.mem-role{font-size:var(--fs-note);font-weight:700;color:var(--sub)}
.mem h3{font-size:var(--fs-h3)}
.mem-q{font-size:var(--fs-sub);line-height:1.8;color:var(--sub)}
@media (hover:hover) and (pointer:fine){.mem:hover .mem-av img{transform:scale(1.05)}}
.fit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.fit>div{background:var(--paper);border-radius:24px;padding:32px}
.fit h3{font-size:var(--fs-h3);margin-bottom:16px}
.fit ul{list-style:none;display:flex;flex-direction:column;gap:12px}
.fit li{padding-left:28px;position:relative;line-height:1.7}
.fit-yes li::before{content:"";position:absolute;left:0;top:.45em;width:14px;height:14px;border-radius:50%;background:var(--mint-d)}
.fit-no li::before{content:"";position:absolute;left:0;top:.75em;width:14px;height:2px;background:var(--coral-d)}
.mem-head{display:grid;grid-template-columns:240px minmax(0,1fr);gap:48px;align-items:center;padding:40px 0 56px;max-width:1100px}
.mem-av.big{margin:0;border-radius:28px}
.mem-head h1{font-size:var(--fs-h1);margin-top:4px}
.mem-lead{margin-top:16px;font-size:var(--fs-lead);font-weight:700;line-height:1.8}
.case-label{align-items:flex-start!important;background:var(--paper)!important;border:1px solid var(--line);justify-content:space-between!important}
.case-label span{color:var(--sub)!important;font-weight:700}
.case-label b{color:var(--ink)!important;font-size:clamp(24px,2.4vw,32px)!important;line-height:1.4}

/* ---------- breakpoints（基底規則の後ろに置く） ---------- */
@media (max-width:1100px){
  .gh-nav{display:none}
  .gh-menu{display:block}
  .gh-in{height:64px}
  .gh .btn-cta.desk{display:none}
  .works{grid-template-columns:repeat(2,minmax(0,1fr))}
  .others{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cmp{min-width:600px}
  .others>div+div{padding-left:0;border-left:0}
  .others>div{border-bottom:1px solid var(--line);padding-bottom:20px}
  .art,.case-layout{grid-template-columns:minmax(0,1fr)}
  .art-side{position:static}
}
@media (max-width:900px){
  :root{--gutter:20px}
  .ph{padding:32px 0 48px;gap:20px}
  .ph-row,.sec-h,.hero,.case,.aidd,.cta-band .wrap,.col-lead,.lane-xr{grid-template-columns:minmax(0,1fr);gap:24px}
  .sec{padding:64px 0}
  .sec-h{margin-bottom:32px}
  .biz{grid-template-columns:minmax(0,1fr);gap:20px}
  .lane-line,.lane-ai,.lane-xr{grid-column:auto}
  .lane-xr .lane-media{aspect-ratio:16/10}
  .lane-body{padding:28px 24px 32px}
  .facts,.combo,.forms,.uses,.uses.xr-built,.merits,.term,.rel,.cols{grid-template-columns:minmax(0,1fr)}
  .facts>div+div,.combo>div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}
  .combo>div{padding-right:0}
  .feat{grid-template-columns:repeat(2,minmax(0,1fr))}
  .feat>div:not(:nth-child(4n+1)){padding-left:0;border-left:0}
  .feat>div:nth-child(2n){padding-left:16px;border-left:1px solid var(--line)}
  .xr-terms{grid-template-columns:minmax(0,1fr)}
  .xr-terms div+div{padding-left:0;border-left:0;border-top:1px solid rgba(255,255,255,.2)}
  .built li{grid-template-columns:56px minmax(0,1fr);gap:8px 16px}
  .built li p{grid-column:2}
  .hero{padding:24px 0 56px}
  .cmp th,.cmp td{padding:14px 12px;font-size:var(--fs-sub)}
  .cmp tbody th{width:30%}
  .faq summary{grid-template-columns:28px minmax(0,1fr) 20px}
  .faq .a{padding:0 0 24px 40px}
  .cta-band{padding:64px 0}
  .gf-top{flex-direction:column}
  .gf nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .art-head{padding:24px 0 32px}
  .toc{padding:22px 20px}
  .prose{font-size:16px}
  .cols{gap:40px}
  .others{grid-template-columns:minmax(0,1fr)}
  .poss,.fit{grid-template-columns:minmax(0,1fr)}
  .steps{grid-template-columns:minmax(0,1fr)}
  .steps li+li{padding-left:0;border-left:0;border-top:1px solid var(--line)}
  .mems{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 16px}
  .mem-head{grid-template-columns:120px minmax(0,1fr);gap:20px;padding:24px 0 32px}
  .career-photo img{aspect-ratio:4/3}
  .case-layout,.cases-list,.case-cta{grid-template-columns:minmax(0,1fr)}
  .case-cta{padding:28px 24px}
  .nw-row{grid-template-columns:auto minmax(0,1fr);gap:8px 12px;padding:20px 0}
  .nw-row h2,.nw-row h3{grid-column:1/-1;font-size:var(--fs-body)}
  .nw-row i{display:none}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
