@charset "utf-8";
*,*::before,*::after{box-sizing:border-box}
body{margin:0}
h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd,ul,ol{margin:0}
/* 1200px を超えたら、文字も余白も本文の幅も画面幅に合わせて大きくする（2026-08-28の決定） */
html{scroll-behavior:smooth;
  font-size:clamp(100%, calc(100% + (100vw - 1200px) * 0.00333), 125%)}
[id]{scroll-margin-top:5.5rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
:root{
  --nv:      #002352;     --nv-2:    #0B2E63;     --bl:      #004AAD;     --bl-2:    #1F65C1;
  --bl-3:    #8FB6E8;     --nv-3:    #102B55;     --rq:      #B4483C;
  --bl-100:  #D7E3F4;
  --bl-50:   #EFF4FB;
  --tx:      #1F252E;
  --tx-2:    #48525F;
  --ln:      #E6E3DD;
  --wh:      #FFFFFF;
  --am:      #B87A3C;
  --am-2:    #CD9059;
  --am-50:   #FDF4E9;
  --cr:      #FDF6EC;
  --cr-50:   #FCFAF6;
  --sun:     #F3C695;
  --wm:      rgba(0,74,173,.12);
  --sh:      0 .875rem 2.25rem -1.125rem rgba(0,35,82,.18);
  --sh-h:    0 1.5rem 3rem -1.25rem rgba(0,35,82,.28);
  --gh-h:    5rem;
  --gut:     min(71.25rem, calc(100% - 3rem));
    --edge:    clamp(1.5rem,6vw,8rem);
}
body{
  font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif;
  color:var(--tx); background:var(--wh); font-size:1rem; line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; height:auto; display:block}
a{color:inherit; text-decoration:none}
.rw .wrap{width:var(--gut); margin-inline:auto}
[hidden]{display:none !important}
.skip{position:absolute; left:-9999px; top:0; background:var(--nv); color:var(--wh);
  padding:0.5rem 1rem; z-index:200}
.skip:focus{left:0}
a:focus-visible,button:focus-visible{outline:2px solid var(--bl); outline-offset:3px}
.gh{position:sticky; top:0; z-index:50; background:rgba(255,255,255,.94);
  backdrop-filter:saturate(160%) blur(8px); border-bottom:1px solid var(--ln)}
.gh__in{width:auto; margin-inline:0; padding-inline:var(--edge); height:var(--gh-h);
  display:flex; align-items:center; gap:2rem}
.gh__logo img{height:2.5rem; width:auto}
.gh__nav{margin-left:auto}
.gh__nav ul{display:flex; gap:1.5rem; list-style:none; margin:0; padding:0}
.gh__nav a{display:block; text-align:center; font-size:.9375rem; font-weight:700; color:var(--nv);
  letter-spacing:.04em; line-height:1.35; padding:0.25rem 0; border-bottom:2px solid transparent;
  transition:border-color .2s ease, color .2s ease}
.gh__nav a small{display:block; font-size:.6875rem; font-weight:700; color:var(--bl);
  letter-spacing:.12em; line-height:1.2; margin-top:0.25rem}
.gh__nav a:hover{color:var(--bl); border-bottom-color:var(--bl)}
.gh__nav a[aria-current="page"]{color:var(--bl); border-bottom-color:var(--bl)}
.gh__cta{display:inline-flex; align-items:center; gap:0.5rem;
  background:var(--nv); color:var(--wh); font-size:.875rem; font-weight:700;
  padding:0.25rem 0.25rem 0.25rem 1.25rem; border-radius:99px; letter-spacing:.04em;
  white-space:nowrap; transition:background .3s cubic-bezier(.22,.61,.36,1)}
.gh__cta::after{content:"\2192"; display:flex; align-items:center; justify-content:center;
  flex:0 0 auto; width:1.875rem; height:1.875rem; border-radius:50%; background:var(--wh);
  color:var(--nv); font-size:.875rem; font-weight:400; line-height:1;
  transition:transform .3s cubic-bezier(.22,.61,.36,1)}
.gh__cta:hover{background:var(--bl)}
.gh__cta:hover::after{transform:translateX(.1875rem)}
.gh__cta:focus-visible{outline:2px solid var(--bl); outline-offset:3px}
.gh__burger{display:none; position:relative; margin-left:auto; width:2.75rem; height:2.75rem; padding:0;
  background:transparent; border:1px solid var(--ln); border-radius:.5rem; cursor:pointer;
  transition:background .2s ease, border-color .2s ease}
.gh__burger span{position:absolute; left:50%; width:1.25rem; height:2px; margin-left:-0.625rem;
  border-radius:2px; background:var(--nv);
  transition:transform .34s cubic-bezier(.3,1.5,.4,1), opacity .16s ease, background .2s ease}
.gh__burger span:nth-child(1){top:calc(50% - 7px)}
.gh__burger span:nth-child(2){top:calc(50% - 1px)}
.gh__burger span:nth-child(3){top:calc(50% + 5px)}
.gh__burger[aria-expanded="false"] span{transform:none}
@media (hover:hover) and (pointer:fine){
.gh__burger:hover{background:var(--bl-50)}
.gh__burger:hover[aria-expanded="false"] span:nth-child(1){transform:translateX(-2px)}
.gh__burger:hover[aria-expanded="false"] span:nth-child(3){transform:translateX(2px)}
}
.gh__burger[aria-expanded="true"]{background:var(--nv); border-color:var(--nv)}
.gh__burger[aria-expanded="true"] span{background:var(--wh)}
.gh__burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.gh__burger[aria-expanded="true"] span:nth-child(2){opacity:0; transform:scaleX(.2)}
.gh__burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.gh__nav .gh__navcta{display:none}
@media (prefers-reduced-motion:reduce){.gh__burger span{transition:none}}
.btn{display:inline-flex; align-items:center; gap:1.5rem; font-size:.9375rem; font-weight:700;
  padding:0.5rem 0.5rem 0.5rem 2rem; border-radius:99px; letter-spacing:.04em; cursor:pointer;
  transition:background .3s cubic-bezier(.22,.61,.36,1), color .3s cubic-bezier(.22,.61,.36,1),
    border-color .3s cubic-bezier(.22,.61,.36,1)}
.btn::after{content:"\2192"; display:flex; align-items:center; justify-content:center;
  flex:0 0 auto; width:2.5rem; height:2.5rem; border-radius:50%; font-size:1rem;
  font-weight:400; line-height:1; transition:transform .3s cubic-bezier(.22,.61,.36,1)}
.btn:hover::after{transform:translateX(.25rem)}
.btn--fill::after{background:var(--wh); color:var(--nv)}
.btn--fill:hover::after{background:var(--wh); color:var(--bl)}
.btn:focus-visible{outline:2px solid var(--bl); outline-offset:3px}
.btn--fill{background:var(--nv); color:var(--wh); border:1px solid var(--nv)}
.btn--fill:hover{background:var(--bl); border-color:var(--bl)}
.btn--ol{background:var(--wh); color:var(--nv); border:1px solid var(--nv)}
.btn--ol:hover{background:var(--nv); color:var(--wh)}
.btn--ex::after{content:"\2197"}
.btn--ex:hover::after{transform:translate(.1875rem,-.1875rem)}
.sec{position:relative; padding-block:6rem; overflow:hidden; --secbg:var(--wh)}
body:not(.home) .sec{padding-block:7rem}
.sec--tint{background:var(--bl-50); --secbg:var(--bl-50)}
.sec--cream{background:var(--cr-50); --secbg:var(--cr-50)}
.shd{text-align:left}
.shd--l{text-align:left}
.shd__en{display:flex; align-items:center; gap:1rem; font-size:.875rem; font-weight:700;
  letter-spacing:.16em; color:var(--bl); line-height:1.4}
.shd__en::before{content:""; flex:0 0 1.75rem; height:1px; background:var(--bl)}
.shd h1,.shd h2{font-family:"Noto Serif JP",serif; font-size:clamp(1.75rem,3.2vw,2.75rem);
  font-weight:600; color:var(--nv); letter-spacing:.04em; line-height:1.45}
.shd__en + h1,.shd__en + h2{margin-top:1rem}
.shd p{margin-top:1.5rem; font-size:1rem; line-height:2; color:var(--tx-2)}
.shd p + p{margin-top:1rem}
.tac{margin-top:3rem; display:flex; justify-content:center; flex-wrap:wrap; gap:0.5rem}
.tac .shd__more,.btns .shd__more{margin-top:0}
.btns{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:1rem 2rem}
.pcbr{display:inline}
@media (max-width:767px){.pcbr{display:none}}
.spbr{display:none}
@media (max-width:767px){.spbr{display:inline}}
.rv--on{opacity:0; transform:translateY(1.25rem); transition:opacity .7s ease-out, transform .7s ease-out}
.rv--on.is-in{opacity:1; transform:none}
.cases{margin-top:3.5rem; display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem}
.cases article{background:var(--wh); border:1px solid var(--ln); border-radius:.375rem; overflow:hidden;
  display:flex; flex-direction:column;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease}
.cases article:hover{transform:translateY(-.25rem); border-color:var(--bl-100);
  box-shadow:0 1.25rem 2.5rem -1.5rem rgba(0,35,82,.3)}
.mslide-hd{display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; flex-wrap:wrap}
.mslide-hd .shd{flex:1 1 28rem; max-width:46rem}
.mslide-ctl{flex:0 0 auto; display:flex; gap:0.5rem}
.mslide-btn{width:2.875rem; height:2.875rem; border:1px solid var(--ln); background:var(--wh);
  cursor:pointer; border-radius:50%; color:var(--nv); font-size:1rem;
  transition:background .2s ease, color .2s ease, border-color .2s ease}
.mslide-btn:hover{background:var(--nv); color:var(--wh); border-color:var(--nv)}
.mslide-btn[disabled]{opacity:.3; cursor:default}
.mslide{margin-top:2.5rem; display:flex; gap:1.5rem; overflow-x:auto;
  padding:.25rem 0.25rem; padding-bottom:1.5rem; scroll-snap-type:x mandatory; scrollbar-width:thin}
.mslide::-webkit-scrollbar{height:.375rem}
.mslide::-webkit-scrollbar-thumb{background:var(--ln); border-radius:.1875rem}
.mcard{flex:0 0 18.75rem; scroll-snap-align:start; background:var(--wh); border:1px solid var(--ln);
  border-radius:.375rem; overflow:hidden; transition:transform .2s ease, box-shadow .2s ease}
.mcard:hover{transform:translateY(-.25rem); box-shadow:0 1.25rem 2.5rem -1.5rem rgba(0,35,82,.3)}
.mcard .mph{aspect-ratio:3/4; background:linear-gradient(100deg,#0B2247 0%,#1D5A96 48%,#3A96C8 100%);
  display:flex; align-items:center; justify-content:center; overflow:hidden}
.mcard .mph img{width:100%; height:100%; object-fit:cover}
.mcard .mph--mk img{width:36%; height:auto; object-fit:contain; opacity:.5}
.mcard .mph{position:relative}
.mcard .mph .mph__sm{position:absolute; inset:0; opacity:0; transition:opacity .4s ease}
@media (hover:hover){.mcard:hover .mph__sm{opacity:1}}
.mcard .mbd{padding:1rem}
.mcard .mpos{font-size:.8125rem; font-weight:800; letter-spacing:.08em; color:var(--bl)}
.mcard .mname{font-size:1.125rem; font-weight:800; color:var(--nv); margin-top:.25rem}
.mcard .mrole{font-size:.875rem; color:var(--tx-2); line-height:1.8; margin-top:.5rem;
  padding-top:.5rem; border-top:1px dashed var(--ln)}
.mcard .mnote{font-size:.8125rem; color:var(--tx-2); line-height:1.75; margin-top:0.25rem}
.nrow{margin-top:4rem; list-style:none; padding:0; border-top:1px solid var(--ln)}
.nrow li{border-bottom:1px solid var(--ln)}
.nrow a{position:relative; display:flex; align-items:baseline; flex-wrap:wrap; gap:1rem 1.5rem;
  padding:2rem 3rem 2rem 0; transition:padding-left .26s ease-out}
.nrow a::after{content:""; position:absolute; right:1rem; top:50%; width:.4375rem; height:.4375rem;
  border-top:1.5px solid var(--tx-2); border-right:1.5px solid var(--tx-2);
  transform:translateY(-50%) rotate(45deg);
  transition:transform .26s ease-out, border-color .26s ease-out}
.nrow a:hover{padding-left:0.5rem}
.nrow a:hover::after{transform:translate(.1875rem,-50%) rotate(45deg); border-color:var(--bl)}
.nrow time{flex:0 0 5.5rem; font-size:.875rem; color:var(--tx-2); font-variant-numeric:tabular-nums}
.nrow em{flex:0 0 8.5rem; font-style:normal; font-size:.8125rem; font-weight:700;
  letter-spacing:.08em; color:var(--bl)}
.nrow__ttl{flex:1 1 20rem; min-width:0; font-size:1.0625rem; font-weight:700; color:var(--nv);
  line-height:1.75; transition:color .26s ease-out}
.nrow a:hover .nrow__ttl{color:var(--bl)}
.gf{position:relative; overflow:hidden; background:var(--nv); color:rgba(255,255,255,.66);
  padding-block:5rem 0; font-size:.9375rem}
.gf::before{content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(72% 88% at 10% 0%, rgba(255,255,255,.09) 0%, rgba(0,0,0,0) 60%)}
.gf__in{position:relative; z-index:1; width:var(--gut); margin-inline:auto; display:grid;
  grid-template-columns:1.25fr repeat(3,1fr); gap:3rem 2.5rem; align-items:start}
.gf__co img{height:2rem; width:auto}
.gf__co p{margin-top:1.5rem; font-size:.875rem; line-height:2.1}
.gf__ttl{display:flex; align-items:center; gap:0.5rem; font-size:.8125rem; font-weight:700;
  color:var(--wh); letter-spacing:.16em}
.gf__ttl::before{content:""; flex:0 0 1.25rem; height:1px; background:rgba(255,255,255,.42)}
.gf__in nav ul{margin-top:1.5rem; list-style:none; padding:0}
.gf__in nav li + li{margin-top:0.5rem}
.gf__in nav li.gf__sub{display:flex; align-items:center; gap:0.5rem; padding-left:1rem}
.gf__in nav li.gf__sub::before{content:""; flex:0 0 0.75rem; height:1px;
  background:rgba(255,255,255,.32)}
.gf__in nav a{position:relative; display:inline-block;
  transition:color .24s ease-out, padding-left .24s ease-out}
.gf__in nav a::before{content:""; position:absolute; left:0; top:50%; width:0; height:1px;
  background:var(--wh); transition:width .24s ease-out}
.gf__in nav a:hover{color:var(--wh); padding-left:1rem}
.gf__in nav a:hover::before{width:0.75rem}
.gf__in nav a.gf__ex::after{content:"\2197"; display:inline-block; margin-left:0.25rem;
  opacity:.55; transition:opacity .24s ease-out, transform .24s ease-out}
.gf__in nav a.gf__ex:hover::after{opacity:1; transform:translate(.125rem,-.125rem)}
.gf__bt{position:relative; z-index:1; width:var(--gut); margin-inline:auto; margin-top:4rem;
  border-top:1px solid rgba(255,255,255,.14); padding-block:1.5rem; padding-right:9rem;
  min-height:7.5rem;
  display:flex; align-items:center; justify-content:flex-start; gap:1rem; flex-wrap:wrap}
.gf__cp{font-size:.75rem; color:rgba(255,255,255,.45); letter-spacing:.04em}
.gf__top{position:absolute; z-index:2; right:2.5rem; bottom:2.25rem;
  display:flex; align-items:center; justify-content:center; width:7rem; height:7rem;
  color:rgba(255,255,255,.7); transition:color .24s ease-out}
.gf__top-ring{position:absolute; inset:0; width:100%; height:100%;
  animation:gftopspin 16s linear infinite}
.gf__top-ring text{font-size:12px; font-weight:700; fill:currentColor}
.gf__top-ar{position:relative; display:flex; align-items:center; justify-content:center;
  width:3.25rem; height:3.25rem; border:1px solid rgba(255,255,255,.3); border-radius:50%;
  transition:background .26s ease-out, border-color .26s ease-out, transform .26s ease-out}
.gf__top-ar::before{content:"\2191"; font-size:1rem; line-height:1; color:rgba(255,255,255,.82);
  transition:color .26s ease-out}
.gf__top:hover{color:var(--wh)}
.gf__top:hover .gf__top-ar{background:var(--wh); border-color:var(--wh);
  transform:translateY(-.25rem)}
.gf__top:hover .gf__top-ar::before{color:var(--nv)}
@keyframes gftopspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.gf__top-ring{animation:none}}
.cta3{position:relative; overflow:hidden; padding-block:8rem}
.cta3__bg{position:absolute; inset:0; z-index:0}
.cta3__bg img{width:100%; height:100%; object-fit:cover; object-position:50% 30%}
.cta3::before{content:""; position:absolute; inset:0; z-index:1; background:rgba(2,28,64,.68)}
.cta3::after{content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(56% 90% at 78% 0%, rgba(243,198,149,.3) 0%, rgba(0,35,82,0) 62%)}
.cta3 > .wrap{position:relative; z-index:2}
.cta3 .cta2{flex-direction:column; align-items:center; justify-content:center; gap:0;
  text-align:center}
.cta3 .cta2__bd{flex:0 1 auto}
.cta3 .cta2__lb{display:flex; align-items:center; justify-content:center; gap:1rem; color:#9CC4F2}
.cta3 .cta2__lb::after{content:""; flex:0 0 1.75rem; height:1px; background:#9CC4F2}
.cta3 .cta2__lb::before{content:""; flex:0 0 1.75rem; height:1px; background:#9CC4F2}
@media (max-width:767px){
.cta3 .cta2{align-items:flex-start; text-align:left}
.cta3 .cta2__lb{justify-content:flex-start}
.cta3 .cta2__lb::before{display:none}
}
.cta3 .btnc{margin-top:2.5rem}
.cta3 .cta2 h2{color:var(--wh)}
.cta3 .cta2 p{font-size:clamp(1rem,1.4vw,1.125rem); line-height:2; color:rgba(255,255,255,.88)}
.btnc{display:inline-flex; align-items:center; gap:1.5rem; padding:0.5rem 0.5rem 0.5rem 2rem;
  background:var(--wh); border-radius:99px; font-size:.9375rem; font-weight:700; color:var(--nv);
  letter-spacing:.04em; transition:background .3s cubic-bezier(.22,.61,.36,1)}
.btnc::after{content:"\2192"; display:flex; align-items:center; justify-content:center;
  flex:0 0 auto; width:2.5rem; height:2.5rem; border-radius:50%; background:var(--nv);
  color:var(--wh); font-size:1rem; font-weight:400;
  transition:transform .3s cubic-bezier(.22,.61,.36,1)}
.btnc:hover{background:var(--cr)}
.btnc:hover::after{transform:translateX(.25rem)}
.cta2{display:flex; align-items:center; justify-content:space-between; gap:3rem; flex-wrap:wrap}
.cta2__bd{flex:1 1 30rem; min-width:0}
.cta2__lb{display:block; font-size:.875rem; font-weight:800; letter-spacing:.18em; color:var(--bl)}
.cta2 h2{margin-top:1rem; font-family:"Noto Serif JP",serif;
  font-size:clamp(1.375rem,2.4vw,2rem); font-weight:600; color:var(--nv); line-height:1.8}
.cta2 p{margin-top:1rem; font-size:1rem; color:var(--tx-2)}
.cta2 .btn{flex:0 0 auto}
.chip{display:inline-flex; align-items:center; gap:0.5rem; padding:0.25rem 1rem;
  border:1px solid var(--ln); border-radius:99px; background:var(--wh);
  font-size:.8125rem; font-weight:700; color:var(--tx-2); line-height:1.9; white-space:nowrap}
.chip--cat{background:var(--bl-50); border-color:transparent; color:var(--nv)}
.chip--cat.ai{background:#DDEAF8; color:var(--bl)}
.chip--cat.tr{background:var(--am-50); color:var(--am)}
.tags{margin-top:1rem; display:flex; flex-wrap:wrap; gap:0.5rem}
.filt{margin-top:2.5rem; display:flex; flex-wrap:wrap; gap:0.5rem; align-items:center}
.filt + .filt{margin-top:1rem}
.filt .lb{display:flex; align-items:center; gap:0.5rem; margin-right:0.5rem;
  font-size:.8125rem; font-weight:700; letter-spacing:.08em; color:var(--tx-2)}
.filt .lb::before{content:""; width:1.25rem; height:1px; background:var(--bl)}
.filt button{display:inline-flex; align-items:center; padding:0.5rem 1rem;
  border:1px solid var(--ln); border-radius:99px; background:var(--wh);
  font-family:inherit; font-size:.8125rem; font-weight:700; color:var(--tx-2); line-height:1.6;
  cursor:pointer; transition:background .22s ease-out, color .22s ease-out, border-color .22s ease-out}
.filt button:hover{border-color:var(--nv); color:var(--nv)}
.filt button.on{background:var(--nv); border-color:var(--nv); color:var(--wh)}
.filt button[aria-pressed="true"]{background:var(--nv); border-color:var(--nv); color:var(--wh)}
.fnone{margin-top:3rem; font-size:1rem; color:var(--tx-2)}
.mrole > span{display:inline-block}
.mrole > span + span::before{content:"／"; color:var(--ln)}
.mpos > span{display:inline-block}
.mpos > span.paren{white-space:nowrap}
.casealt{margin-top:5rem; display:grid; gap:7rem}
.casealt article{position:relative; display:grid; align-items:center; gap:4rem}
.casealt__ph{position:relative}
.casealt__ph .zm{position:relative; z-index:1; border-radius:.5rem; box-shadow:var(--sh)}
.casealt__ph img{width:100%; object-fit:cover}
.casealt__ph::after{content:""; position:absolute; z-index:0; bottom:-1.5rem; width:56%;
  aspect-ratio:16/9; border-radius:.5rem; background:var(--cr)}
.casealt__cat{position:relative; display:inline-block; padding-left:2.5rem;
  font-size:.875rem; font-weight:700; letter-spacing:.12em; color:var(--bl)}
.casealt__cat::before{content:""; position:absolute; left:0; top:.72em; width:1.75rem; height:1px;
  background:var(--bl)}
.casealt h3{margin-top:1rem; text-wrap:pretty; font-family:"Noto Serif JP",serif;
  font-size:clamp(1.375rem,2.2vw,1.875rem); font-weight:600; color:var(--nv); line-height:1.7}
.casealt__cl{margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid var(--ln);
  font-size:.9375rem; font-weight:700; color:var(--nv)}
.casealt__bd > p:last-child{margin-top:0.5rem; font-size:.9375rem; line-height:2; color:var(--tx-2)}
.casealt article{grid-template-columns:1.1fr 1fr}
.casealt__ph img{aspect-ratio:16/10}
.casealt--wide .casealt__ph::after{left:-1.5rem}
.casealt--tall .casealt__ph{order:2}
.casealt--tall .casealt__bd{order:1}
.casealt--tall .casealt__ph::after{right:-1.5rem}
.casealt--small .casealt__ph::after{left:-1.5rem}
.shd__more{margin-top:2.5rem}
.shd__more a{position:relative; display:inline-flex; align-items:center; gap:1rem;
  font-size:.9375rem; font-weight:700; color:var(--nv); line-height:1.6;
  transition:color .26s ease-out}
.shd__more a::after{content:"\2192"; display:flex; align-items:center; justify-content:center;
  flex:0 0 auto; width:2.5rem; height:2.5rem; border:1px solid var(--nv); border-radius:50%;
  overflow:hidden; font-size:1rem; font-weight:400; color:var(--nv);
  transition:background .3s cubic-bezier(.22,.61,.36,1), color .3s cubic-bezier(.22,.61,.36,1),
    border-color .3s cubic-bezier(.22,.61,.36,1)}
.shd__more a::before{content:""; position:absolute; left:0; bottom:-0.25rem; width:0; height:1px;
  background:var(--bl); transition:width .4s cubic-bezier(.22,.61,.36,1)}
.shd__more a:hover{color:var(--bl)}
.shd__more a:hover::after{background:var(--nv); border-color:var(--nv); color:var(--wh)}
.shd__more a:hover::before{width:calc(100% - 3.5rem)}
.shd__more--w a{color:var(--wh)}
.shd__more--w a::after{border-color:rgba(255,255,255,.72); color:var(--wh)}
.shd__more--w a::before{background:var(--wh)}
.shd__more--w a:hover{color:var(--wh)}
.shd__more--w a:hover::after{background:var(--wh); border-color:var(--wh); color:var(--nv)}@media (max-width:1023px){}

.svcf__hd{text-align:center}
.svcf__lb{display:inline-flex; align-items:center; gap:1rem; font-size:.8125rem; font-weight:700;
  letter-spacing:.18em; color:var(--bl)}
.svcf__lb::before,.svcf__lb::after{content:""; width:2.25rem; height:1px; background:var(--bl-3)}
.svcf__hd h2{margin-top:1rem; font-family:"Noto Serif JP",serif;
  font-size:clamp(1.75rem,3.4vw,2.75rem); font-weight:600; color:var(--nv);
  line-height:1.5; letter-spacing:.03em}
.svcf__hd > p{margin-top:1.5rem; font-size:1rem; line-height:2.1; color:var(--tx-2)}
.svcf{margin-top:3.5rem}
.svcf__row{position:relative}
.svcf__cards{position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:2.5rem}
.svcf__card{position:relative; overflow:hidden; display:flex; flex-direction:column;
  padding:2rem; border-radius:.75rem;
  background:var(--wh); text-align:center;
  box-shadow:0 1.25rem 2.75rem -1.25rem rgba(0,35,82,.24)}
.svcf__card .shd__more{margin-top:auto; padding-top:1.5rem}
.svcf__card-bg{position:absolute; inset:0; z-index:0}
.svcf__card-bg img{width:100%; height:100%; object-fit:cover; object-position:70% 50%}
.svcf__card-bg::after{content:""; position:absolute; inset:0;
  background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.96) 50%,
    rgba(255,255,255,.91) 80%,rgba(255,255,255,.84) 100%)}
.svcf__card > *:not(.svcf__card-bg){position:relative; z-index:1}
.svcf__ttl{display:flex; align-items:center; justify-content:center; gap:1rem}
.svcf__ic{display:flex; align-items:center; justify-content:center; flex:0 0 3.25rem;
  width:3.25rem; height:3.25rem; border-radius:50%; background:var(--bl); color:var(--wh)}
.svcf__ic svg{width:1.75rem; height:1.75rem}
.svcf__ttl h3{font-family:"Noto Serif JP",serif; font-size:1.5rem; font-weight:600; color:var(--nv)}
.svcf__ttl h3 a{transition:color .22s ease-out}
.svcf__ttl h3 a:hover{color:var(--bl)}
.svcf__cp{margin-top:1rem; font-size:1.0625rem; font-weight:700; color:var(--bl); line-height:1.8}
.svcf__list{margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid var(--ln);
  list-style:none; padding-inline:0; display:grid; grid-template-columns:1fr 1fr;
  gap:0.5rem 1rem; text-align:left}
.svcf__list li{position:relative; padding-left:1rem; font-size:1rem; font-weight:700;
  color:var(--nv); line-height:1.8}
.svcf__list li::before{content:"#"; position:absolute; left:0; top:0;
  font-weight:700; color:var(--bl-2)}
.svcf__link{display:grid; grid-template-columns:1fr auto 1fr; align-items:end; gap:3rem;
  padding-block:1rem}
.svcf__arw{justify-self:end; width:4.5rem}
.svcf__arw--r{justify-self:start}
.svcf__arw svg{display:block; width:100%; height:auto}
.svcf__link p{font-size:1rem; font-weight:700; color:var(--bl-2); line-height:1.9;
  text-align:center}
.svcf__base{position:relative; overflow:hidden; border-radius:.75rem; background:var(--wh);
  border:1px solid var(--bl-100)}
.svcf__base-bg{position:absolute; inset:0; z-index:0}
.svcf__base-bg img{width:100%; height:100%; object-fit:cover; object-position:center}
.svcf__base::before{content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg,rgba(255,255,255,.15) 0%,rgba(255,255,255,.45) 24%,
    rgba(255,255,255,.66) 50%,rgba(255,255,255,.60) 70%,rgba(255,255,255,.08) 100%)}
.svcf__base-in{position:relative; z-index:2; padding:2.5rem clamp(1.5rem,6vw,7rem);
  text-align:center}
.svcf__pill{display:inline-block; padding:0.25rem 1.5rem; border-radius:99px;
  background:var(--bl-50); font-size:.75rem; font-weight:700; letter-spacing:.16em;
  color:var(--bl)}
.svcf__base-in h3{margin-top:0.5rem; font-family:"Noto Serif JP",serif; font-size:2.25rem;
  font-weight:600; color:var(--nv)}
.svcf__base-in h3 a{transition:color .22s ease-out}
.svcf__base-in h3 a:hover{color:var(--bl)}
.svcf__base-cp{margin-top:0.5rem; font-size:1.25rem; font-weight:700; color:var(--bl);
  line-height:1.7}
.svcf__base-bd{margin-top:0.5rem; font-size:1rem; line-height:2; color:var(--tx-2)}
.svcf__grid{margin-top:1.5rem; list-style:none; padding-inline:0; display:grid;
  grid-template-columns:1fr 1fr; gap:1rem 2.5rem; width:33rem; max-width:100%;
  margin-inline:auto}
.svcf__grid li{font-size:1rem; font-weight:700; line-height:1.7; color:var(--nv);
  text-align:left}
.svcf__grid li::before{content:"#"; margin-right:0.25rem; color:var(--bl-2)}
.svcf__base .shd__more{margin-top:1.5rem}

/* 事業セクション：左詰め・写真を右に見せる */
.svcf--lt .svcf__base-in{text-align:left; padding-inline:clamp(1.5rem,3vw,3.5rem)}
.svcf--lt .svcf__pill{padding:0; background:transparent; letter-spacing:.16em}
.svcf--lt .svcf__base-in h3{margin-top:0.75rem}
.svcf--lt .svcf__grid{margin-top:2rem; margin-inline:0; width:auto; max-width:100%;
  display:flex; flex-wrap:wrap; justify-content:flex-start; gap:0.75rem 0}
.svcf--lt .svcf__grid li{padding-right:1.5rem; font-size:.9375rem; line-height:1.7}
.svcf--lt .svcf__grid li + li{padding-left:1.5rem; border-left:1px solid var(--bl-100)}
.svcf--lt .svcf__base .shd__more{margin-top:2rem}
.svcf--lt .svcf__card{text-align:left; padding:2.25rem}
.svcf--lt .svcf__ic{display:none}
.svcf--lt .svcf__ttl{justify-content:flex-start}
.svcf--lt .svcf__list{grid-template-columns:1fr; gap:0.625rem}
.svcf--lt .svcf__card-bg img{object-position:78% 50%}
.svcf--lt .svcf__card-bg::after{
  background:linear-gradient(90deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.97) 46%,
    rgba(255,255,255,.6) 68%,rgba(255,255,255,.12) 100%)}
@media (max-width:1023px){
.svcf--lt .svcf__grid li{padding-right:1rem}
.svcf--lt .svcf__grid li + li{padding-left:1rem}
.svcf--lt .svcf__card-bg::after{
  background:linear-gradient(90deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.9) 70%,
    rgba(255,255,255,.7) 100%)}}

/* AI事業から2事業への分岐線 */
.svcb1{position:relative; height:6rem}
.svcb1::before{content:""; position:absolute; left:50%; top:0; width:3px; height:3rem;
  margin-left:-1.5px; background:var(--bl)}
.svcb1::after{content:""; position:absolute; left:25%; right:25%; top:3rem; height:3px;
  background:var(--bl)}
.svcb1 i{position:absolute; top:3rem; width:3px; height:2.375rem; background:var(--bl)}
.svcb1 i:nth-of-type(1){left:25%}
.svcb1 i:nth-of-type(2){left:75%}
.svcb1 i::after{content:""; position:absolute; left:50%; bottom:0; width:0.625rem; height:0.625rem;
  margin-left:-0.3125rem; border-bottom:3px solid var(--bl); border-right:3px solid var(--bl);
  transform:rotate(45deg)}
.svcb1 b{position:absolute; z-index:1; left:50%; top:3rem; transform:translate(-50%,-50%);
  width:1.125rem; height:1.125rem; border:3px solid var(--bl); border-radius:50%;
  background:var(--wh)}
.svcb1[data-anim]::before{transform:scaleY(0); transform-origin:top}
.svcb1[data-anim]::after{transform:scaleX(0)}
.svcb1[data-anim] i{transform:scaleY(0); transform-origin:top}
.svcb1[data-anim] i::after{opacity:0}
.svcb1[data-anim] b{transform:translate(-50%,-50%) scale(0)}
.svcb1[data-anim].in::before{transform:scaleY(1); transition:transform .35s ease-out}
.svcb1[data-anim].in b{transform:translate(-50%,-50%) scale(1); transition:transform .3s cubic-bezier(.2,1.6,.3,1) .3s}
.svcb1[data-anim].in::after{transform:scaleX(1); transition:transform .4s ease .45s}
.svcb1[data-anim].in i{transform:scaleY(1); transition:transform .3s ease .85s}
.svcb1[data-anim].in i::after{opacity:1; transition:opacity .25s ease 1.1s}
/* 幅の狭い画面：コンサルティング・PMから教育研修へつなぐ線 */
.svcb2{display:none; position:relative; height:3.5rem}
.svcb2::before{content:""; position:absolute; left:50%; top:0; width:3px; height:2.875rem;
  margin-left:-1.5px; background:var(--bl)}
.svcb2::after{content:""; position:absolute; left:50%; top:2.5rem; width:0.625rem; height:0.625rem;
  margin-left:-0.3125rem; border-bottom:3px solid var(--bl); border-right:3px solid var(--bl);
  transform:rotate(45deg)}

@media (max-width:1279px){
.svcf__cards{gap:1.5rem}
.svcf__card{padding:1.5rem}
.svcf__list{grid-template-columns:1fr}
.svcf__link{gap:2rem}
}
@media (max-width:1023px){
.gh__logo{flex-shrink:0; margin-right:auto}
.gh__logo img{height:2rem}
.gh__burger{display:block; margin-left:0}
.gh__cta{display:none}
.gh__nav .gh__navcta{display:flex; align-items:center; justify-content:center; gap:1rem;
  width:100%; margin:2rem 0 0; padding:0.75rem 0.75rem 0.75rem 1.5rem; border-radius:99px;
  background:var(--nv); color:var(--wh); font-size:1rem; font-weight:700;
  letter-spacing:.04em; text-align:center; text-decoration:none; border-bottom:0}
.gh__nav .gh__navcta::after{content:"\2192"; display:flex; align-items:center;
  justify-content:center; flex:0 0 auto; width:2.25rem; height:2.25rem; border-radius:50%;
  background:var(--wh); color:var(--nv); font-size:1rem; font-weight:400; line-height:1}
.gh__nav[data-open="true"] li,.gh__nav[data-open="true"] .gh__navcta{
  animation:ghitem .34s cubic-bezier(.2,1.3,.4,1) both}
.gh__nav[data-open="true"] li:nth-child(1){animation-delay:.03s}
.gh__nav[data-open="true"] li:nth-child(2){animation-delay:.06s}
.gh__nav[data-open="true"] li:nth-child(3){animation-delay:.09s}
.gh__nav[data-open="true"] li:nth-child(4){animation-delay:.12s}
.gh__nav[data-open="true"] li:nth-child(5){animation-delay:.15s}
.gh__nav[data-open="true"] li:nth-child(6){animation-delay:.18s}
.gh__nav[data-open="true"] .gh__navcta{animation-delay:.21s}
@keyframes ghitem{from{opacity:0; transform:translateY(.5rem)} to{opacity:1; transform:none}}
@media (prefers-reduced-motion:reduce){
.gh__nav[data-open="true"] li,.gh__nav[data-open="true"] .gh__navcta{animation:none}}
.gh__nav{position:absolute; left:0; right:0; top:100%; margin-left:0; background:var(--wh);
    border-bottom:1px solid var(--ln); box-shadow:0 .875rem 1.5rem -1.125rem rgba(0,35,82,.35);
    padding:1.5rem; display:none}
.gh__nav[data-open="true"]{display:block}
.gh__nav ul{flex-direction:column; gap:0}
.gh__nav li + li{border-top:1px solid var(--ln)}
.gh__nav a{text-align:left; padding:1rem 0; border-bottom:0}
.gh__nav a small{margin-top:0.25rem}
.svcf__cards{grid-template-columns:1fr; position:relative; padding-left:2.5rem}
.svcf__card{overflow:visible}
.svcf__card-bg{border-radius:.75rem; overflow:hidden}
.svcf__card::before{content:""; position:absolute; left:-1.5rem; width:3px; margin-left:-1.5px;
  background:var(--bl)}
.svcf__card:first-child::before{top:-2rem; bottom:0}
.svcf__card:last-child::before{top:-1.5rem; bottom:calc(100% - 2.5rem)}
.svcf__card::after{content:""; position:absolute; left:-1.5rem; top:2.5rem; width:1.5rem;
  height:0.75rem; margin-top:-0.375rem;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 12'%3E%3Cpath d='M0 6h17M14 2.5 17.5 6 14 9.5' fill='none' stroke='%23004AAD' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat left center/contain}
.svcb1{height:4rem}
.svcb1::before{left:1rem; height:4rem}
.svcb1::after{display:none}
.svcb1 b{left:1rem; top:2rem}
.svcb1 i{display:none}
.svcb2{display:none}
.svcf__card:first-child::before{top:0}
.svcf__cards[data-anim] .svcf__card::before{transform:scaleY(0); transform-origin:top}
.svcf__cards[data-anim] .svcf__card::after{opacity:0}
.svcf__cards[data-anim].in .svcf__card::before{transform:scaleY(1); transition:transform .3s ease-out}
.svcf__cards[data-anim].in .svcf__card:last-child::before{transition-delay:.3s}
.svcf__cards[data-anim].in .svcf__card::after{opacity:1; transition:opacity .25s ease .3s}
.svcf__cards[data-anim].in .svcf__card:last-child::after{transition-delay:.6s}
.svcf__link{grid-template-columns:1fr; justify-items:center; gap:1rem}
.svcf__arw,.svcf__arw--r{justify-self:center}
.svcf__arw--r{display:none}
}
@media (max-width:767px){
.svcf__card{padding:1.5rem}
.svcf__list{grid-template-columns:1fr}
.svcf__base-in{padding:2.5rem 1.5rem}
.svcf__base-in h3{font-size:1.75rem}
.svcf__base-cp{font-size:1.0625rem}
.svcf__grid{grid-template-columns:1fr; gap:1rem; width:auto}
}
@media (max-width:1279px){
.cases, .gf__in{grid-template-columns:repeat(2,1fr); gap:2.5rem}
.casealt{gap:4rem}
.casealt article{gap:2.5rem}

.gf__co{grid-column:1 / -1}}
@media (max-width:767px){.casealt article{grid-template-columns:1fr !important; gap:1.5rem}
.casealt--tall .casealt__ph{order:0}
.casealt--tall .casealt__bd{order:0}
.casealt__ph::after{display:none}
:root{--gut:calc(100% - 2.5rem); --gh-h:4rem}

.nrow a{padding:1rem 2rem 1rem 0; gap:0.5rem 1rem}
.nrow time{flex:0 0 auto}
.nrow__ttl{flex:1 1 100%; font-size:1rem}
.sec,body:not(.home) .sec{padding-block:4.5rem}
.mslide-ctl{display:none}
.mcard{flex:0 0 16rem}
.cases{grid-template-columns:1fr; gap:1.5rem}
.gf__in{grid-template-columns:1fr; gap:2.5rem}
.gf__bt{margin-top:3rem; padding-right:5.5rem; min-height:6rem}
.gf__top{right:1.25rem; bottom:1.25rem; width:5.5rem; height:5.5rem}
.gf__top-ring text{font-size:13px}
.gf__top-ar{width:2.5rem; height:2.5rem}
.tac{margin-top:2rem}}
@media (prefers-reduced-motion:reduce){*{transition:none !important; animation:none !important}}
.msoon{margin-top:3rem; padding-block:4rem; text-align:center; font-size:clamp(2rem,1.5rem + 2vw,3.5rem); font-weight:700; letter-spacing:.12em; color:var(--bl)}
