/* ilando.jp  2026-11-09 */
:root{
  --ink:#0b1b33; --ink-2:#2c3d58; --mute:#55637b;
  --paper:#fff; --mist:#f0f4fa; --mist-2:#e2e9f5; --line:#cfd8e6;
  --cobalt:#1a47e6; --cobalt-d:#1233b4; --cobalt-l:#e8eefe;
  --orange:#ff5a14; --orange-d:#cb3e08; --orange-l:#fff0e8;
  --teal:#0a7e6e; --amber:#9a6700; --crimson:#d3234a;
  --wrap:1120px; --gut:clamp(16px,4vw,32px);
  --font:"Hiragino Kaku Gothic ProN","Hiragino Sans","BIZ UDPGothic","Yu Gothic UI","Yu Gothic","Noto Sans JP","Meiryo",sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.9 var(--font);font-feature-settings:"palt";letter-spacing:.02em;line-break:strict;overflow-wrap:break-word;word-break:auto-phrase}
img,svg{max-width:100%;height:auto}
a{color:var(--cobalt);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--cobalt-d)}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:10px 14px;z-index:99}
.skip:focus{left:8px;top:8px}
.wrap{width:100%;max-width:calc(var(--wrap) + var(--gut)*2);margin:0 auto;padding:0 var(--gut)}
h1,h2,h3,h4{margin:0;font-weight:800;line-height:1.35;letter-spacing:.01em;text-wrap:balance}
h1{font-size:clamp(28px,4.8vw,52px);line-height:1.25}
h2{font-size:clamp(22px,2.9vw,32px)}
h3{font-size:clamp(17px,1.9vw,20px)}
p{margin:0 0 1em;text-wrap:pretty}
ul,ol{margin:0 0 1em;padding-left:1.4em}
li{margin:.25em 0}
small{font-size:.86em}
.mute{color:var(--mute)}
.num{font-variant-numeric:tabular-nums}

/* ヘッダ */
.bar{height:6px;background:linear-gradient(90deg,var(--cobalt) 0 72%,var(--orange) 72% 100%)}
html{scroll-padding-top:96px}
.hd{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}
.hd-in{display:flex;align-items:center;gap:20px;min-height:68px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-weight:800;font-size:22px;letter-spacing:.02em}
.brand svg{width:32px;height:32px;flex:none}
.brand small{display:block;font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--mute);line-height:1;margin-bottom:3px}
.brand span{line-height:1}
.gnav{margin-left:auto;display:flex;align-items:center;gap:4px}
.gnav a{color:var(--ink);text-decoration:none;font-weight:700;font-size:15px;padding:10px 12px;border-bottom:3px solid transparent}
.gnav a:hover,.gnav a[aria-current="page"]{border-bottom-color:var(--orange)}
.gnav a.btn{padding:10px 18px;border:2px solid var(--ink);margin-left:8px}
.gnav a.btn:hover{border-color:var(--ink)}
.mnav{display:none;margin-left:auto}
.mnav summary{list-style:none;cursor:pointer;font-weight:800;padding:10px 14px;border:2px solid var(--ink);font-size:14px}
.mnav summary::-webkit-details-marker{display:none}
.mnav[open] summary{background:var(--ink);color:#fff}
.mnav nav{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:3px solid var(--ink);padding:8px var(--gut) 16px;display:grid}
.mnav nav a{color:var(--ink);font-weight:700;text-decoration:none;padding:13px 4px;border-bottom:1px solid var(--line)}
@media (max-width:900px){.gnav{display:none}.mnav{display:block}.hd-in{position:relative}}

/* ボタン */
.btn{display:inline-block;background:var(--orange);color:var(--ink);border:2px solid var(--ink);padding:14px 26px;font-weight:800;text-decoration:none;line-height:1.3;text-align:center;cursor:pointer;font-family:inherit;font-size:16px;transition:transform .12s,box-shadow .12s}
.btn:hover{color:var(--ink);background:#ff7a3d;transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--ink)}
.btn-w{background:#fff;color:var(--cobalt);border-color:#fff}
.btn-w:hover{background:#fff;color:var(--cobalt-d);box-shadow:4px 4px 0 var(--ink)}
.btn-line{background:transparent;color:var(--ink)}
.btn-line:hover{background:#fff}
.btns{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}

/* 見出しの飾り */
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:13px;letter-spacing:.14em;color:var(--cobalt);margin-bottom:14px}
.eyebrow::before{content:"";width:10px;height:10px;background:var(--orange);flex:none}
.hero .eyebrow{color:#fff}
.sec{padding:clamp(48px,7vw,88px) 0}
.sec.alt{background:var(--mist)}
.sec-h{max-width:760px;margin-bottom:34px}
.sec-h p{color:var(--ink-2);margin-top:14px}

/* ヒーロー */
.hero{background:var(--cobalt);color:#fff;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;right:-6%;top:-22%;width:min(52vw,640px);aspect-ratio:1;background:repeating-linear-gradient(135deg,rgba(255,255,255,.09) 0 2px,transparent 2px 15px);pointer-events:none}
.hero-in{position:relative;display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(24px,5vw,64px);align-items:end;padding-top:clamp(44px,7vw,96px);padding-bottom:clamp(44px,7vw,96px)}
.hero h1{color:#fff}
.hero .lead{font-size:clamp(16px,1.7vw,19px);margin:22px 0 0;max-width:36em;color:#e8eefe}
.hero .btns .btn-line{color:#fff;border-color:#fff}
.hero .btns .btn-line:hover{background:#fff;color:var(--cobalt)}
.board{background:#fff;color:var(--ink);border:2px solid var(--ink);box-shadow:8px 8px 0 var(--ink)}
.board h2{font-size:14px;letter-spacing:.14em;padding:14px 18px;background:var(--ink);color:#fff}
.board ul{list-style:none;margin:0;padding:6px 18px 10px}
.board li{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);margin:0;font-weight:700;font-size:15px}
.board li:last-child{border-bottom:0}
.board li a{color:var(--ink);text-decoration:none}
.board li a:hover{color:var(--cobalt)}
.board b{font-variant-numeric:tabular-nums;color:var(--cobalt)}
@media (max-width:860px){.hero-in{grid-template-columns:1fr}}

/* ページ見出し(下層) */
.phead{background:var(--mist);border-bottom:1px solid var(--line);padding:clamp(28px,4vw,52px) 0}
.phead .lead{margin:16px 0 0;max-width:46em;color:var(--ink-2);font-size:clamp(15px,1.5vw,17px)}
.crumb{font-size:13px;color:var(--mute);margin-bottom:18px}
.crumb ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:4px 8px}
.crumb li{margin:0}
.crumb li+li::before{content:"/";margin-right:8px;color:var(--line)}
.crumb a{color:var(--mute)}

/* カード */
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:960px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{display:block;position:relative;background:#fff;border:1px solid var(--line);padding:22px 22px 20px;color:var(--ink);text-decoration:none;transition:transform .12s,box-shadow .12s,border-color .12s}
a.card:hover{color:var(--ink);border-color:var(--ink);transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--ink)}
.card h3{margin-bottom:8px}
.card p{margin:0;color:var(--ink-2);font-size:15px;line-height:1.75}
.card .more{display:inline-block;margin-top:12px;font-weight:800;font-size:14px;color:var(--cobalt)}
.tag{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.06em;color:#fff;background:var(--cobalt);padding:3px 9px;margin-bottom:10px}
.tag.t-ai-automation{background:var(--cobalt)}
.tag.t-development{background:var(--ink)}
.tag.t-data{background:var(--teal)}
.tag.t-it-ops{background:var(--crimson)}
.tag.t-web-marketing{background:var(--orange-d)}
.tag.t-business-dev{background:var(--amber)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none}
.chips li{margin:0;border:1.5px solid var(--ink);padding:5px 12px;font-weight:700;font-size:14px;background:#fff}
.chips li b{color:var(--cobalt);margin-right:6px}

/* 講座一覧の行 */
.crow{display:grid;grid-template-columns:96px 1fr auto;gap:8px 22px;align-items:start;padding:20px 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
a.crow:hover{background:var(--mist);color:var(--ink)}
.crow .hrs{font-weight:800;font-size:28px;line-height:1;font-variant-numeric:tabular-nums}
.crow .hrs small{display:block;font-size:12px;letter-spacing:.1em;color:var(--mute);margin-top:6px;font-weight:700}
.crow h3{margin-bottom:6px}
.crow p{margin:0;color:var(--ink-2);font-size:15px}
.crow .job{font-size:13px;color:var(--mute);margin-top:6px}
.crow .go{font-weight:800;color:var(--cobalt);white-space:nowrap}
@media (max-width:640px){.crow{grid-template-columns:70px 1fr}.crow .go{display:none}.crow .hrs{font-size:22px}}

/* 本文ブロック */
.prose{max-width:760px}
/* 左揃えの本文列（見出しの位置とそろえる） */
.wrap.prose.col{max-width:calc(var(--wrap) + var(--gut)*2)}
.col>*{max-width:760px}

.prose h2{margin:2.4em 0 .8em;padding-top:.2em;border-top:3px solid var(--ink);padding-top:18px}
.prose h2:first-child{margin-top:0}
.prose h3{margin:1.8em 0 .6em}
.answer{background:var(--cobalt-l);border-left:6px solid var(--cobalt);padding:18px 22px;margin:0 0 28px;font-weight:600;color:var(--ink)}
.answer p:last-child{margin:0}
.note{background:var(--orange-l);border:1px solid #ffc7a8;padding:14px 18px;font-size:14.5px;margin:1.2em 0;text-wrap:pretty}
.toc{border:1px solid var(--line);padding:18px 22px;margin:0 0 30px;background:#fff}
.toc b{display:block;font-size:13px;letter-spacing:.14em;margin-bottom:8px}
.toc ol{margin:0;padding-left:1.3em}
.toc li{margin:.15em 0;font-size:15px}
.tbl-wrap{overflow-x:auto;margin:1.2em 0;-webkit-overflow-scrolling:touch}
table.tbl{width:100%;border-collapse:collapse;font-size:15px;min-width:520px}
table.tbl caption{caption-side:top;text-align:left;font-weight:800;padding:0 0 8px}
table.tbl th,table.tbl td{border:1px solid var(--line);padding:11px 14px;text-align:left;vertical-align:top;line-height:1.7}
table.tbl thead th{background:var(--ink);color:#fff;border-color:var(--ink)}
table.tbl tbody th{background:var(--mist);font-weight:700;min-width:8.5em;width:26%}
table.tbl tbody tr:nth-child(even) td{background:#fafcff}
table.tbl.tbl2{min-width:0}
.tsrc{margin:-.6em 0 1.4em;font-size:13.5px;color:var(--mute)}
.tsrc a{color:var(--mute)}
@media (max-width:820px){
  .tbl-wrap{overflow:visible}
  table.tbl.stack{min-width:0}
  table.tbl.stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  table.tbl.stack,table.tbl.stack tbody,table.tbl.stack tr,table.tbl.stack th,table.tbl.stack td{display:block;width:100%}
  table.tbl.stack caption{display:block}
  table.tbl.stack tr{border:1px solid var(--line);margin:0 0 12px;background:#fff}
  table.tbl.stack tbody th{min-width:0;border:0;border-bottom:1px solid var(--line)}
  table.tbl.stack td{border:0;border-bottom:1px solid var(--line);padding:9px 14px}
  table.tbl.stack td:last-child{border-bottom:0}
  table.tbl.stack td::before{content:attr(data-label);display:block;font-size:12.5px;font-weight:800;color:var(--ink-2);margin-bottom:2px}
  table.tbl.stack tbody tr:nth-child(even) td{background:#fff}
}
@media (max-width:600px){
  table.tbl.tbl2{table-layout:fixed}
  table.tbl.tbl2 th,table.tbl.tbl2 td{padding:9px 10px;overflow-wrap:anywhere}
}
}
.kv{display:grid;grid-template-columns:150px 1fr;margin:0;border-top:1px solid var(--line)}
.kv dt,.kv dd{margin:0;padding:14px 12px;border-bottom:1px solid var(--line)}
.kv dt{font-weight:800;background:var(--mist)}
@media (max-width:560px){.kv{grid-template-columns:1fr}.kv dt{border-bottom:0;padding-bottom:4px}.kv dd{padding-top:6px}}

/* FAQ */
.faq details{border:1px solid var(--line);margin:0 0 10px;background:#fff}
.faq summary{cursor:pointer;font-weight:800;padding:16px 46px 16px 18px;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:22px;font-weight:800;color:var(--orange-d)}
.faq details[open] summary::after{content:"−"}
.faq details[open]{border-color:var(--ink)}
.faq .a{padding:0 18px 16px;color:var(--ink-2)}
.faq .a p:last-child{margin:0}

/* 講座ページ */
.two{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(24px,4vw,56px);align-items:start}
@media (max-width:960px){.two{grid-template-columns:1fr}}
.side{position:sticky;top:90px;border:2px solid var(--ink);background:#fff;box-shadow:6px 6px 0 var(--ink)}
.side h2{font-size:13px;letter-spacing:.14em;background:var(--ink);color:#fff;padding:12px 18px}
.side dl{margin:0;padding:6px 18px}
.side dl div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}
.side dt{color:var(--mute);font-weight:700;flex:none}
.side dd{margin:0;font-weight:700;text-align:right}
.side .btn{display:block;margin:14px 18px 18px}
@media (max-width:960px){.side{position:static}}
.curr{list-style:none;padding:0;margin:0}
.curr>li{border:1px solid var(--line);margin:0 0 12px;padding:0;background:#fff}
.curr .ch{display:flex;justify-content:space-between;gap:12px;align-items:baseline;background:var(--mist);padding:12px 18px;font-weight:800}
.curr .ch b{color:var(--cobalt);font-variant-numeric:tabular-nums;white-space:nowrap}
.curr ul{margin:0;padding:12px 18px 12px 38px}
.checks{list-style:none;padding:0}
.checks li{position:relative;padding-left:28px;margin:.5em 0}
.checks li::before{content:"";position:absolute;left:2px;top:.62em;width:12px;height:12px;background:var(--orange)}

/* CTA */
.cta{background:var(--ink);color:#fff;padding:clamp(44px,6vw,72px) 0}
.cta h2{color:#fff;max-width:26em}
.cta p{color:#c9d4e8;max-width:38em;margin-top:14px}

/* フォーム */
.form{display:grid;gap:18px;max-width:720px}
.form label{display:block;font-weight:800;font-size:15px;margin-bottom:6px}
.form .req::after{content:"必須";margin-left:8px;font-size:11px;background:var(--orange);color:var(--ink);padding:2px 6px;letter-spacing:.06em}
.form input[type=text],.form input[type=email],.form input[type=tel],.form select,.form textarea{width:100%;font:inherit;font-size:16px;padding:12px 14px;border:2px solid var(--ink);background:#fff;color:var(--ink);border-radius:0}
.form textarea{min-height:170px;resize:vertical}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form .agree{display:flex;gap:10px;align-items:flex-start;font-weight:600}
.form .agree input{margin-top:.5em;width:20px;height:20px;flex:none}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:620px){.form .row2{grid-template-columns:1fr}}

/* フッタ */
.ft{background:var(--ink);color:#c9d4e8;padding:48px 0 26px;font-size:14.5px;border-top:6px solid var(--orange)}
.ft a{color:#fff;text-decoration:none}
.ft a:hover{text-decoration:underline}
.ft-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:28px}
@media (max-width:860px){.ft-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.ft-grid{grid-template-columns:1fr}}
.ft h2{font-size:12px;letter-spacing:.16em;color:#8ea2c6;margin-bottom:12px}
.ft ul{list-style:none;padding:0;margin:0}
.ft li{margin:.45em 0}
.ft address{font-style:normal;line-height:1.85}
.ft .copy{border-top:1px solid #2a3c5e;margin-top:32px;padding-top:18px;font-size:12.5px;color:#8ea2c6}


/* 狭い画面で、まとまった語が列を押し広げないように */
.grid>*,.ft-grid>*,.two>*,.hero-in>*,.hd-in>*{min-width:0}
.ft a,.chips li,.card h3,.card p,.crow h3,.crow p,.board li,.crumb li,.btn{overflow-wrap:anywhere}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.hd,.ft,.cta,.mnav,.side .btn{display:none}body{font-size:12pt}a{color:inherit}}
