/* 識学風の案：白地＋濃紺、見出し前の斜線、細めの見出し、右に固定した資料請求フォーム */
:root{--navy:#002C6A;--navy3:#001A40;--ink:#3E3A39;--ink2:#6b6664;--gold:#A16207;--gold2:#D4A853;--gray:#EEEDEA;--line:#dedbd5;
  --sh:0 14px 36px rgba(0,44,106,.14),0 3px 10px rgba(0,44,106,.07)}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",sans-serif;color:var(--ink);background:#fff;-webkit-text-size-adjust:100%}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.nw{display:inline-block}
html,body{overflow-x:hidden}
.mock{background:var(--navy3);color:#fff;font-size:12px;text-align:center;padding:6px 12px;line-height:1.6}
.mock a{text-decoration:underline}

.hd{position:sticky;top:0;z-index:60;height:72px;background:#fff;display:flex;align-items:center;padding:0 28px;gap:28px;transition:box-shadow .3s}
.hd.sc{box-shadow:0 6px 20px rgba(0,44,106,.1)}
.hd .logo img{height:24px;width:auto}
.hd nav{display:flex;gap:22px;font-size:13px;font-weight:500}
.hd nav a:hover{color:var(--navy)}
.hd .btns{margin-left:auto;display:flex;gap:10px}
.b{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;height:42px;padding:0 10px 0 18px;font-size:13px;font-weight:700;border:1.5px solid var(--navy);transition:background .2s,color .2s,transform .2s;box-shadow:0 6px 14px rgba(0,44,106,.18)}
.b i{font-style:normal;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:11px;background:#fff;color:var(--navy)}
.b.k{background:var(--navy);color:#fff}
.b.o{color:var(--navy);background:#fff}
.b.o i{background:var(--navy);color:#fff}
.b:hover{transform:translateY(-2px)}

.wrap{display:grid;grid-template-columns:1fr 320px;gap:0;max-width:1440px;margin:0 auto}
main{min-width:0}
.side{position:sticky;top:88px;align-self:start;margin:24px 24px 24px 0;background:#fff;border:1px solid var(--line);box-shadow:var(--sh);max-height:calc(100vh - 110px);overflow:auto}
.side .fh{background:var(--navy);color:#fff;text-align:center;font-size:14px;font-weight:700;padding:12px}
.side .doc{padding:16px 16px 0}
.side .doc img{box-shadow:0 6px 16px rgba(0,0,0,.15)}
.side form{padding:14px 18px 20px;display:grid;gap:12px}
.side label{display:grid;gap:5px;font-size:12px;font-weight:700}
.side label em{font-style:normal;font-size:10px;background:#c0392b;color:#fff;padding:1px 5px;margin-left:6px;vertical-align:1px}
.side input[type=text],.side input[type=email],.side select{font:inherit;font-size:14px;height:40px;border:1px solid var(--line);background:#fafaf8;padding:0 10px;width:100%}
.side .ag{display:flex;align-items:center;gap:8px;font-weight:500}
.side button{font:inherit;font-weight:700;font-size:15px;height:50px;border:none;background:var(--navy);color:#fff;cursor:pointer;box-shadow:0 8px 18px rgba(0,44,106,.3)}
.side .ok{font-size:11px;color:var(--ink2);line-height:1.6}

/* ヒーロー */
.hero{padding:44px 0 40px;position:relative}
.cp{padding:0 48px 0 84px;position:relative}
.cp::before{content:"";position:absolute;left:36px;top:4px;width:2px;height:74px;background:var(--navy);transform:rotate(28deg);transform-origin:top}
.cp .sub{font-size:16px;font-weight:500;color:var(--ink)}
.cp h1{font-size:clamp(26px,2.9vw,38px);font-weight:700;color:var(--navy3);margin:10px 0 22px;letter-spacing:.02em}
.strip{display:grid;grid-template-columns:repeat(5,1fr);height:300px;margin-top:34px}
.strip>div{overflow:hidden}
.strip img{width:100%;height:100%;object-fit:cover}
.res{display:grid;grid-template-columns:1.5fr 1fr;gap:14px;margin:-62px 40px 0;position:relative;z-index:2}
.rb,.rb2{background:#fff;box-shadow:var(--sh);clip-path:polygon(18px 0,100% 0,calc(100% - 18px) 100%,0 100%);padding:20px 40px 22px}
.rb .t,.rb2 .t{display:block;text-align:center;font-size:16px;font-weight:700;color:var(--navy);border-bottom:1px solid var(--line);padding-bottom:8px}
.nums{display:grid;grid-template-columns:repeat(3,1fr);margin-top:12px;text-align:center}
.nums>div+div{border-left:1px solid var(--line)}
.nums small{font-size:12px;font-weight:700;color:var(--ink2)}
.nums p{font-family:"Oswald",sans-serif;font-size:44px;font-weight:600;color:var(--navy);line-height:1.15;white-space:nowrap;font-size-adjust:none}
.nums p{font-feature-settings:"tnum"}
.nums p em{font-style:normal;color:var(--gold2);font-size:24px;margin:0 4px;vertical-align:middle}
.nums p,.nums p span{font-family:"Oswald",sans-serif}
.nums p{font-size:44px}
.nums p::after{content:""}
.nums i{display:block;font-style:normal;font-size:11px;color:var(--ink2)}
.rb2{display:grid;grid-template-columns:110px 1fr;gap:16px;align-items:center}
.rb2 img{width:110px;height:110px;object-fit:cover}
.rb2 .t{text-align:left}
.rb2 .big{font-family:"Oswald",sans-serif;font-size:30px;color:var(--navy);margin-top:8px;font-weight:600}
.rb2 i{font-style:normal;font-size:12px;color:var(--ink2)}
.cap{font-size:11px;color:#8d8882;margin:12px 48px 0;line-height:1.7}
.logos{display:flex;flex-wrap:wrap;gap:14px 36px;justify-content:center;margin:34px 48px 0}
.logos span{font-size:14px;font-weight:700;color:#7d828c}

/* 共通の欄 */
.sec{padding:84px 48px}
.sec.gray{background:var(--gray)}
.sec.navy{background:var(--navy3);color:#fff}
.sl{position:relative;padding-left:56px;font-size:clamp(22px,2.2vw,28px);font-weight:400;color:var(--navy3);letter-spacing:.04em;margin-bottom:34px}
.sl::before{content:"";position:absolute;left:14px;top:-10px;width:2px;height:54px;background:var(--navy);transform:rotate(30deg)}
.sl.w{color:#fff}.sl.w::before{background:#fff}
.video{position:relative;max-width:820px;margin:0 auto;box-shadow:var(--sh);aspect-ratio:16/9;overflow:hidden;background:#000}
.video img{width:100%;height:100%;object-fit:cover;opacity:.55}
.video>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;gap:10px;padding:20px}
.video .pl{width:72px;height:72px;border-radius:50%;background:rgba(255,255,255,.95);color:var(--navy);display:grid;place-items:center;font-size:22px;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.video b{font-size:20px}
.video small{font-size:12px;opacity:.85}

.roles{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.roles button{font:inherit;font-size:13px;font-weight:700;border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 14px;cursor:pointer;color:var(--ink2)}
.roles button.on{background:var(--navy);border-color:var(--navy);color:#fff}
.isg{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.is{background:#fff;padding:20px 18px 64px;position:relative;box-shadow:0 2px 10px rgba(0,44,106,.06);transition:box-shadow .25s,transform .25s;min-height:190px}
.is:hover{box-shadow:var(--sh);transform:translateY(-3px)}
.is h3{font-size:16px;font-weight:700;color:var(--navy3)}
.is p{font-size:12px;color:var(--ink2);margin-top:6px;line-height:1.7}
.is .tg{display:flex;flex-wrap:wrap;gap:4px;margin-top:12px}
.is .tg span{font-size:10px;font-weight:700;background:var(--navy);color:#fff;border-radius:999px;padding:2px 8px}
.is .tg span+span{background:#e9edf4;color:var(--navy)}
.is svg{position:absolute;right:16px;bottom:14px;width:38px;height:38px;color:var(--navy)}
.is.hide{display:none}

.val{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.val h3{font-size:20px;font-weight:700;color:var(--navy3);line-height:1.7}
.val p{font-size:14px;line-height:2.1;margin-top:18px;color:var(--ink)}
.val .ph{box-shadow:var(--sh);overflow:hidden;aspect-ratio:4/3}
.val .ph img{width:100%;height:100%;object-fit:cover}

.why{display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:#fff;color:var(--ink);padding:30px 26px}
.why>div{padding:0 20px}
.why h3{font-size:15px;font-weight:700;color:var(--navy3);line-height:1.6;min-height:3.2em}
.why .im{margin-top:14px;aspect-ratio:4/3;overflow:hidden}
.why .im img{width:100%;height:100%;object-fit:cover}
.why p{font-size:12.5px;line-height:1.9;margin-top:12px;color:var(--ink2)}

.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.cases .im{aspect-ratio:4/3;overflow:hidden;box-shadow:var(--sh)}
.cases .im img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.cases a:hover .im img{transform:scale(1.05)}
.cases b{display:block;margin-top:14px;font-size:15px;color:var(--navy3);letter-spacing:.06em}
.cases .tg{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.cases .tg span{font-size:10px;font-weight:700;background:#e9edf4;color:var(--navy);border-radius:999px;padding:2px 8px}
.cases p{font-size:16px;font-weight:700;color:var(--navy);margin-top:12px;line-height:1.6;border-top:1px solid var(--line);padding-top:12px}

.sem{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.sem a{position:relative;aspect-ratio:4/3;overflow:hidden;box-shadow:var(--sh);color:#fff}
.sem img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.sem a:hover img{transform:scale(1.05)}
.sem a::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,26,64,.9),transparent 65%)}
.sem div{position:absolute;left:16px;right:16px;bottom:14px;z-index:1}
.sem em{font-style:normal;font-size:11px;font-weight:700;background:var(--gold2);color:var(--navy3);padding:2px 8px}
.sem b{display:block;margin-top:8px;font-size:15px;line-height:1.55}

.ctas{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ctas>div{background:#fff;padding:26px 24px;box-shadow:var(--sh);display:flex;flex-direction:column}
.ctas svg{width:34px;height:34px;color:var(--navy)}
.ctas h3{font-size:16px;font-weight:700;color:var(--navy3);margin-top:12px}
.ctas p{font-size:12.5px;line-height:1.9;color:var(--ink2);margin-top:8px;flex:1}
.ctas .b{margin-top:18px;align-self:stretch}

.ft{background:var(--navy3);color:#fff;padding:56px 48px 30px}
.ft .g{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;max-width:900px}
.ft .g b{display:block;font-size:14px;margin-bottom:10px}
.ft .g a{display:block;font-size:12.5px;opacity:.85;padding:4px 0}
.ft .lg{margin-top:44px}
.ft .lg img{height:34px;width:auto}
.ft .lg p{font-size:13px;margin-top:10px;font-weight:700}
.ft .c{font-size:11px;opacity:.6;margin-top:20px}

/* 動き（共通の dr.js を使う） */
.rv{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}
.rv.in{opacity:1;transform:none}
.rv.l{transform:translateX(-36px)}.rv.r{transform:translateX(36px)}.rv.l.in,.rv.r.in{transform:none}
.rv.d1{transition-delay:.08s}.rv.d2{transition-delay:.18s}.rv.d3{transition-delay:.28s}
.mask{position:relative;overflow:hidden}
.mask img{transform:scale(1.12);transition:transform 1.6s cubic-bezier(.2,.8,.2,1)}
.ready .mask img{transform:none}
.strip>div{opacity:0;transform:translateY(20px);transition:opacity .9s,transform .9s}
.ready .strip>div{opacity:1;transform:none}
.ready .strip>div:nth-child(2){transition-delay:.1s}.ready .strip>div:nth-child(3){transition-delay:.2s}.ready .strip>div:nth-child(4){transition-delay:.3s}.ready .strip>div:nth-child(5){transition-delay:.4s}
@media (prefers-reduced-motion:reduce){.rv,.strip>div{opacity:1!important;transform:none!important}}

/* チャット（共通の chat.js） */
.cg-btn{position:fixed;left:18px;bottom:18px;z-index:90;width:58px;height:58px;border-radius:50%;border:none;cursor:pointer;background:var(--navy);color:#fff;box-shadow:0 12px 28px rgba(0,44,106,.4);display:grid;place-items:center}
.cg-btn svg{width:26px;height:26px}.cg-btn svg circle{fill:var(--navy)}
.cg-btn .x{display:none;font-size:24px}
.cg-open .cg-btn svg{display:none}.cg-open .cg-btn .x{display:block}
.cg-teaser{display:none}
.cg-panel{position:fixed;left:18px;bottom:90px;z-index:90;width:360px;max-height:min(600px,calc(100vh - 120px));background:#fff;box-shadow:0 24px 60px rgba(0,26,64,.3);display:flex;flex-direction:column;overflow:hidden;opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .3s,transform .3s}
.cg-open .cg-panel{opacity:1;transform:none;pointer-events:auto}
.cg-hd{background:var(--navy);color:#fff;padding:14px 16px;display:flex;gap:10px;align-items:center}
.cg-av{width:38px;height:38px;border-radius:50%;background:#fff;display:grid;place-items:center}.cg-av img{width:26px}
.cg-hd b{display:block;font-size:15px}.cg-hd small{font-size:11px;opacity:.85}
.cg-hd .cl{margin-left:auto;background:rgba(255,255,255,.2);border:none;color:#fff;width:28px;height:28px;border-radius:50%;cursor:pointer}
.cg-body{padding:14px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;background:var(--gray);flex:1}
.cg-msg{background:#fff;padding:11px 13px;font-size:14px;line-height:1.8;max-width:92%}
.cg-msg b{color:var(--navy)}
.cg-me{align-self:flex-end;background:var(--navy);color:#fff}
.cg-typing{display:flex;gap:4px;width:max-content}.cg-typing i{width:6px;height:6px;border-radius:50%;background:#999}
.cg-ch{display:grid;gap:8px}
.cg-ch button,.cg-ch a{font:inherit;font-size:13px;font-weight:700;text-align:left;background:#fff;color:var(--navy);border:1px solid #c9d3e6;padding:9px 14px;cursor:pointer}
.cg-ch a.pri{background:var(--navy);color:#fff;text-align:center}
.cg-ft{padding:9px 14px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:11px;color:var(--ink2)}
.cg-ft a{color:var(--navy);font-weight:700;text-decoration:underline}

@media (max-width:1180px){
  .wrap{grid-template-columns:1fr}
  .side{position:static;margin:0 20px 40px;max-height:none;max-width:560px;justify-self:center;width:calc(100% - 40px)}
  .hd nav{display:none}
}
@media (max-width:760px){
  .hd{padding:0 14px;height:62px}
  .hd .logo img{height:20px}
  .hd .b.o{display:none}
  .b{height:38px;font-size:12px}
  .cp{padding:0 20px 0 50px}
  .cp::before{left:22px;height:58px}
  .cp .sub{font-size:13px}
  .strip{grid-template-columns:repeat(3,1fr);height:170px}
  .strip>div:nth-child(n+4){display:none}
  .res{grid-template-columns:1fr;margin:-30px 14px 0}
  .rb,.rb2{clip-path:none;padding:16px 16px 18px}
  .nums p{font-size:30px}
  .nums p em{font-size:16px}
  .nums small{font-size:10.5px}
  .rb2{grid-template-columns:80px 1fr}.rb2 img{width:80px;height:80px}
  .rb2 .big{font-size:24px}
  .cap,.logos{margin-left:20px;margin-right:20px}
  .logos{gap:10px 20px}.logos span{font-size:12px}
  .sec{padding:60px 20px}
  .sl{padding-left:44px}
  .sl::before{left:10px;height:44px}
  .isg{grid-template-columns:1fr 1fr}
  .is{padding:16px 14px 56px;min-height:0}
  .is h3{font-size:14px}
  .val,.why,.cases,.sem,.ctas{grid-template-columns:1fr}
  .why{padding:18px 6px;row-gap:28px}
  .why h3{min-height:0}
  .ft{padding:44px 20px 26px}
  .ft .g{grid-template-columns:1fr 1fr}
  .side input[type=text],.side input[type=email],.side select{font-size:16px}
  .cg-panel{left:10px;right:10px;width:auto;bottom:84px}
}
@media (pointer:coarse){input,textarea,select,[contenteditable="true"]{font-size:16px!important}}
.side label{display:block}
.side label input[type=text],.side label input[type=email],.side label select{display:block;margin-top:5px}
.side label em{display:inline-block}
.side .ag{display:flex}
