/* 自主学習コース（お客様向け）
   ・色は Fulfill の承認済み配色（#3389CA / #2B62D9 / #00BCD4）
   ・角丸なし、罫線は1px、丸ゴシックは使わない、文字にグラデーションをかけない
   ・スマホを先に組み、広い画面で広げる */
:root{
  --bg:#F3F6F8; --white:#fff;
  --ink:#1B2733; --sub:#55667A; --grey:#8C9CA8; --line:#D6E1E8;
  --blue:#3389CA; --deep:#2B62D9; --cyan:#00BCD4;
  --ok:#2A9D6E; --okbg:#F2FAF6; --warn:#D9683E; --warnbg:#FFF7F3;
  --band:linear-gradient(135deg,#2B62D9,#3389CA 55%,#00BCD4);
  --font:"Zen Kaku Gothic New","Yu Gothic","游ゴシック体",YuGothic,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--font);background:var(--bg);color:var(--ink);
  font-size:16px;line-height:1.85;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:var(--deep)}
button{border-radius:0}

/* ヘッダー */
.hd{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--line);backdrop-filter:blur(6px)}
.hd::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--band)}
.hd__in{max-width:880px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.hd__logo{color:var(--ink);text-decoration:none;font-weight:700;font-size:14px;letter-spacing:.04em;line-height:1.4}
.hd__logo span{display:block;font-size:11px;color:var(--sub);font-weight:500;letter-spacing:.08em}
.hd__tag{font-size:11px;font-weight:700;color:var(--deep);border:1px solid var(--deep);padding:2px 8px;white-space:nowrap}

/* ページ頭の帯 */
.hero{background:var(--band);color:#fff}
.hero__in{max-width:880px;margin:0 auto;padding:30px 16px 26px}
.hero__k{font-size:11px;font-weight:700;letter-spacing:.22em;opacity:.9;margin:0 0 6px}
.hero h1{font-size:25px;line-height:1.4;margin:0;font-weight:700;letter-spacing:.02em}
.hero__lead{margin:10px 0 0;font-size:15px;line-height:1.8;opacity:.96}
.hero__meta{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 0;padding:0;list-style:none}
.hero__meta li{border:1px solid rgba(255,255,255,.7);padding:2px 10px;font-size:12px;font-weight:700}

/* 本文 */
.main{max-width:880px;margin:0 auto;padding:22px 16px 60px}
.main h2.sec{font-size:20px;line-height:1.45;margin:34px 0 12px;padding:0 0 8px;border-bottom:1px solid var(--ink)}
.main h2.sec small{display:block;font-size:11px;letter-spacing:.2em;color:var(--deep);font-weight:700;margin-bottom:2px}
.card{background:var(--white);border:1px solid var(--line);padding:16px 18px;margin:0 0 14px}
.card p{margin:0 0 .7em}.card p:last-child{margin-bottom:0}
.card ul,.card ol{margin:.3em 0 .6em;padding-left:1.3em}
.flow{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.flow li{background:var(--white);border:1px solid var(--line);border-left:3px solid var(--deep);padding:10px 14px;font-size:15px}
.flow b{display:block;font-size:15.5px}

/* 誰が学習中か・進み具合 */
.who{background:var(--white);border:1px solid var(--line);border-left:3px solid var(--blue);
  padding:10px 14px;margin:0 0 14px;font-size:14px;color:var(--sub);line-height:1.7}
.who b{color:var(--ink)}
.prog{margin:0 0 14px}
.prog__bar{height:10px;background:var(--white);border:1px solid var(--line);overflow:hidden}
.prog__fill{height:100%;width:0;background:var(--band);transition:width .5s ease}
.prog__t{font-size:13px;color:var(--sub);margin:6px 0 0;font-weight:700}

/* 次にやる日 */
.next{display:block;width:100%;text-align:left;font-family:inherit;cursor:pointer;
  background:var(--deep);color:#fff;border:1px solid var(--deep);padding:14px 16px;margin:0 0 22px}
.next:hover{background:#1F4FBC}
.next__k{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;opacity:.9}
.next__t{display:block;font-size:17px;font-weight:700;line-height:1.5;margin-top:2px}
.next__t::after{content:"  >";font-weight:700}

/* 週と日 */
.weeks{list-style:none;margin:0;padding:0}
.week{margin:0 0 22px}
.week__hd{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 8px;padding:0 0 6px;border-bottom:1px solid var(--deep)}
.week__t{font-size:16.5px;font-weight:700}
.week__s{font-size:13px;color:var(--sub);flex:1 1 100%}
.week__n{font-size:12.5px;font-weight:700;color:var(--deep)}
.days{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.day{width:100%;text-align:left;font-family:inherit;background:var(--white);cursor:pointer;
  border:1px solid var(--line);border-left:3px solid var(--line);
  display:grid;grid-template-columns:46px minmax(0,1fr);gap:4px 10px;align-items:center;padding:10px 12px}
.day:hover{border-left-color:var(--blue)}
.day__no{font-size:18px;font-weight:700;color:var(--grey);line-height:1.1;text-align:center}
.day__no small{display:block;font-size:9.5px;letter-spacing:.12em}
.day__t{font-size:15.5px;font-weight:700;line-height:1.5}
.day__s{display:block;font-size:12.5px;color:var(--sub);font-weight:400;margin-top:1px}
.day__st{grid-column:2;justify-self:start;font-size:11.5px;font-weight:700;color:var(--grey);border:1px solid var(--line);padding:0 8px}
.day--review{background:#F7FAFD}
.day--done{border-left-color:var(--ok)}
.day--done .day__no{color:var(--ok)}
.day--done .day__st{color:var(--ok);border-color:var(--ok);background:var(--okbg)}
.day--final{border-style:dashed}
.day--final .day__no{color:var(--cyan)}
.day--lock{opacity:.5;cursor:not-allowed}

/* ボタン */
.acts{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 0}
.cbtn{font-family:inherit;font-size:14px;font-weight:700;padding:9px 18px;cursor:pointer;
  background:var(--deep);color:#fff;border:1px solid var(--deep)}
.cbtn:hover{background:#1F4FBC;border-color:#1F4FBC}
.cbtn--ghost{background:#fff;color:var(--deep)}
.cbtn--ghost:hover{background:var(--deep);color:#fff}
.cbtn--plain{background:none;border:0;color:var(--sub);text-decoration:underline;padding:9px 4px}
.cbtn--plain:hover{background:none;color:var(--ink)}
.cbtn--sm{font-size:13px;padding:6px 14px}

/* 1日分の中身 */
.panel{margin:26px 0 0;background:var(--white);border:1px solid var(--line);padding:18px 16px 22px;margin-left:-16px;margin-right:-16px}
.lhead{font-size:11.5px;letter-spacing:.14em;color:var(--deep);font-weight:700}
.ltitle{font-size:22px;font-weight:700;line-height:1.45;margin:4px 0 18px;padding-bottom:10px;border-bottom:2px solid var(--deep)}
.blk__k{font-size:11.5px;letter-spacing:.16em;font-weight:700;color:var(--cyan);margin:0 0 8px}
.lbody h3{font-size:17px;line-height:1.5;margin:24px 0 8px;padding-left:10px;border-left:3px solid var(--blue)}
.lbody p{margin:0 0 .9em}
.lbody ul,.lbody ol{margin:.2em 0 1em;padding-left:1.35em}
.lbody li{margin:.25em 0}
.lbody .say{background:#F5F8FC;border:1px solid var(--line);border-left:3px solid var(--deep);padding:10px 14px;margin:0 0 1em;font-size:15px}
.lbody .say b{display:block;font-size:11.5px;letter-spacing:.08em;color:var(--deep);margin-bottom:2px}
.lbody .point{background:var(--okbg);border:1px solid #CFE9DC;padding:10px 14px;margin:0 0 1em;font-size:15px}
.lbody .point b{color:var(--ok)}
.lbody .caution{background:var(--warnbg);border:1px solid #F3D5C7;padding:10px 14px;margin:0 0 1em;font-size:15px}
.lbody code,.task code,.q code{font-family:Consolas,"Courier New",monospace;font-size:.92em;background:#EEF3F7;padding:1px 5px}
.lbody pre{background:#1B2733;color:#EAF2F8;padding:12px 14px;overflow:auto;font-size:13.5px;line-height:1.7;margin:0 0 1em;white-space:pre-wrap}
.lbody pre code{background:none;padding:0;color:inherit}
.tw{overflow-x:auto;margin:0 0 1em}
.tw table{border-collapse:collapse;width:100%;font-size:14px;min-width:420px}
.tw th{background:#EEF3F8;text-align:left;padding:7px 10px;border:1px solid var(--line);white-space:nowrap}
.tw td{padding:7px 10px;border:1px solid var(--line);vertical-align:top}
.src{font-size:12.5px;color:var(--sub);margin:.4em 0 1em}

/* 用語 */
.terms{margin:0 0 20px}
.term{background:#F7FBFD;border:1px solid var(--line);border-left:3px solid var(--cyan);padding:10px 14px;margin:0 0 8px}
.term__hd{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-bottom:3px}
.term__t{font-size:16px;font-weight:700}
.term__y{font-size:12px;color:var(--sub)}
.term__p{font-size:14.5px;line-height:1.75}
.term__l{font-size:13.5px;line-height:1.7;color:var(--sub);margin-top:5px;padding-top:5px;border-top:1px dashed var(--line)}
.term__l b{display:block;font-size:11px;letter-spacing:.06em;color:var(--blue)}

/* お題 */
.task{margin:26px 0 0;border:1px solid var(--deep);background:#FAFCFF;padding:16px 16px 14px}
.task--review{border-style:dashed}
.task__goal{font-size:16px;font-weight:700;line-height:1.75;margin:0 0 12px}
.task__goal p{margin:0 0 .5em}
.task__sub{margin:0 0 10px;font-size:14.5px}
.task__sub b{display:block;font-size:12px;color:var(--sub);letter-spacing:.06em}
.task__sub ul{margin:2px 0 0;padding-left:1.3em}
.task__note{font-size:13px;color:var(--sub);margin:12px 0 8px}
.task__help .cbtn{margin:0 0 8px}
.hint{background:#fff;border:1px solid var(--line);border-left:3px solid var(--cyan);padding:9px 13px;margin:0 0 8px;font-size:14.5px}
.hint b{display:block;font-size:11.5px;letter-spacing:.08em;color:var(--cyan)}
.hint--steps{border-left-color:var(--deep)}
.hint--steps b{color:var(--deep)}
.hint ol{margin:4px 0 0;padding-left:1.4em}
.task__done{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.task__ok{font-weight:700;color:var(--ok)}
.task__ok::before{content:"";display:inline-block;width:8px;height:14px;border:solid var(--ok);border-width:0 3px 3px 0;transform:rotate(45deg);margin:0 10px -1px 4px}

/* クイズ */
.quiz{margin:28px 0 0;border-top:1px solid var(--line);padding-top:20px}
.quiz__lead{font-size:13.5px;color:var(--sub);margin:0 0 12px}
.q{border:1px solid var(--line);padding:13px 14px;margin:0 0 10px;background:#FAFCFD}
.q__t{font-weight:700;margin:0 0 10px;font-size:15.5px;line-height:1.65}
.q__o{display:grid;gap:6px}
.opt{text-align:left;font-family:inherit;font-size:15px;line-height:1.65;padding:9px 12px;background:#fff;border:1px solid var(--line);cursor:pointer;color:var(--ink)}
.opt:hover:not(:disabled){border-color:var(--blue)}
.opt--ok{border-color:var(--ok);background:var(--okbg);font-weight:700}
.opt--ng{border-color:var(--warn);background:var(--warnbg)}
.opt:disabled{cursor:default}
.q__e{display:none;margin-top:10px;padding:10px 12px;background:#fff;border:1px solid var(--line);font-size:14.5px;line-height:1.75}
.q--done .q__e{display:block}
.q__e b.ok{color:var(--ok)}.q__e b.ng{color:var(--warn)}
.q__miss{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);font-size:14px}
.q__miss b{display:block;font-size:11px;letter-spacing:.06em;color:var(--warn)}

/* 日の終わり・結果 */
.lnav{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:22px 0 0;padding-top:16px;border-top:1px solid var(--line)}
.lnav__score{flex:1 1 100%;font-weight:700;font-size:14.5px}
.result{text-align:center;padding:20px 0 4px}
.result__n{font-size:48px;font-weight:700;line-height:1;color:var(--deep)}
.result__n small{font-size:20px;color:var(--sub)}
.result__m{font-weight:700;margin:12px 0 0}
.result__d{text-align:left;margin:16px 0 0;font-size:14px;color:var(--sub)}
.jumps{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}

/* 受講者の進み具合 */
.people{border-collapse:collapse;width:100%;font-size:14px}
.people th{background:var(--deep);color:#fff;padding:8px 10px;text-align:left;white-space:nowrap;border:1px solid var(--deep)}
.people td{padding:8px 10px;border:1px solid var(--line)}
.people .mini{height:6px;background:#EDF3F6;overflow:hidden;min-width:80px;margin-bottom:3px}
.people .mini i{display:block;height:100%;background:var(--band)}

.ft{border-top:1px solid var(--line);background:var(--white)}
.ft__in{max-width:880px;margin:0 auto;padding:18px 16px 26px;font-size:12.5px;color:var(--sub);line-height:1.8}

@media(min-width:720px){
  body{font-size:16.5px}
  .hd__in{padding:12px 24px}
  .hero__in{padding:44px 24px 36px}
  .hero h1{font-size:32px}
  .main{padding:28px 24px 80px}
  .panel{margin-left:0;margin-right:0;padding:26px 30px 30px}
  .ltitle{font-size:25px}
  .day{grid-template-columns:54px minmax(0,1fr) auto;padding:12px 16px}
  .day__st{grid-column:auto;justify-self:end}
  .week__s{flex:1 1 auto}
  .lnav__score{flex:1 1 auto}
  .ft__in{padding:22px 24px 30px}
}
