/* pages/linkedin_elearning.css — linkedin.css から自動で分割。このページだけで使う記述 */
/* =========================================================
   LinkedInラーニング
   ========================================================= */
/* ファーストビュー：白背景の機器画像を背景になじませる */
.lr-visual { position: relative; }
.lr-visual img { display: block; width: 100%; height: auto; filter: drop-shadow(0 30px 40px rgba(10, 52, 102, .12)); }
.lr-chip--1 { left: 4%; top: 6%; right: auto; }
.lr-chip--2 { right: 2%; bottom: 10%; top: auto; }

/* 社名が流れる帯 */
.li-marquee__track--text li { height: 40px; font-size: 18px; letter-spacing: .06em; color: var(--ink); white-space: nowrap; }
.li-marquee__track--text { gap: 56px; }
.lv__note { margin-top: 28px; font-size: 14px; color: var(--ink-2); }

/* 導入の流れ（週） */
.tl--weeks .tl__months span:first-child::after { content: "週目"; }
.tl__seg.lp1 { grid-column: 1 / 4; background: var(--ink); color: var(--white); }
.tl__seg.lp2 { grid-column: 4 / 9; background: #5f6368; color: var(--white); }
.tl__seg.lp3 { grid-column: 9 / 13; background: var(--white); border: 1px solid #d6d9dc; }
.tl__desc.lp1 { border-color: var(--ink); }
.tl__desc.lp2 { border-color: #5f6368; }
.tl__desc.lp3 { border-color: #c9ccd0; }

@media (max-width: 860px) {
  .tl--weeks .tl__months span:first-child::after { content: ""; }
}

/* ---------- 数字を「動き」で見せる（LinkedInラーニング Overview） ---------- */
.ov { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.ov__p { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; align-items: center; padding: 40px 36px 40px 0; border-bottom: 1px solid var(--line); }
.ov__p:nth-child(even) { padding: 40px 0 40px 36px; border-left: 1px solid var(--line); }
.ov__num { font-family: var(--font-en); font-weight: 200; font-size: clamp(44px, 4.4vw, 64px); line-height: 1; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ov__num small { font-family: var(--font-ja); font-size: 15px; font-weight: 400; margin-left: 6px; }
.ov__label { font-size: 15px; margin-top: 12px; }
.ov__txt { font-size: 13px; color: var(--ink-2); line-height: 1.8; margin-top: 6px; }
.ov__vis { height: 150px; position: relative; display: grid; align-content: center; }
/* A：コース名が流れる */
.chips { display: grid; gap: 10px; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
.chips__row { display: flex; gap: 8px; width: max-content; animation: chips 28s linear infinite; }
.chips__row:nth-child(2) { animation-direction: reverse; animation-duration: 34s; }
.chips__row:nth-child(3) { animation-duration: 40s; }
.chips__row span { font-size: 12px; padding: 6px 12px; border-radius: 999px; background: var(--white); border: 1px solid var(--ui-line); white-space: nowrap; }
.chips__row span:nth-child(3n) { background: var(--li); color: #fff; border-color: var(--li); }
/* B：動画プレーヤー */
.player { background: #0f1b2a; border-radius: 10px; padding: 14px; display: grid; gap: 12px; aspect-ratio: 16 / 10; align-content: end; position: relative; overflow: hidden; }
.player::before { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, #2b4f7a, #0f1b2a 70%); }
.player__play { position: absolute; left: 50%; top: 42%; transform: translate(-50%, -50%); width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.9); }
.player__play::after { content: ""; position: absolute; left: 16px; top: 12px; border-left: 12px solid #0f1b2a; border-top: 8px solid transparent; border-bottom: 8px solid transparent; }
.player__bar { position: relative; height: 4px; border-radius: 4px; background: rgba(255,255,255,.25); overflow: hidden; }
.player__bar i { position: absolute; inset: 0; width: 0; background: #70b5f9; }
.player__time { position: relative; font-family: var(--font-en); font-size: 12px; color: #fff; font-variant-numeric: tabular-nums; }
.ov__p.is-in .player__bar i { animation: play 6s linear infinite; }
/* C：言語が切り替わる */
.lang { text-align: center; }
.lang__word { font-size: clamp(28px, 2.6vw, 38px); font-weight: 300; color: var(--li); min-height: 1.4em; transition: opacity .3s; }
.lang__name { font-size: 12px; color: var(--ink-2); margin-top: 6px; letter-spacing: .1em; }
/* D：100マス中78マス（Fortune 500の78%） */
.waffle { display: grid; grid-template-columns: repeat(10, 1fr); gap: 4px; width: 150px; margin: 0 auto; }
.waffle i { aspect-ratio: 1; border-radius: 2px; background: #e4e8ec; transition: background .3s; transition-delay: calc(var(--d) * 12ms); }
.ov__p.is-in .waffle i.on { background: var(--li); }
.waffle__cap { text-align: center; font-size: 12px; color: var(--ink-2); margin-top: 10px; }
.st__text { color: var(--ink-2); line-height: 2; margin-top: 16px; }

@media (max-width: 860px) {
  .ov { grid-template-columns: 1fr; }
  .ov__p, .ov__p:nth-child(even) { padding: 32px 0; border-left: 0; }
}
.st__lead { font-size: 13px; letter-spacing: .1em; color: var(--ink-2); margin-bottom: 20px; }

/* ---------- 学べること（タブ＋コースカード） ---------- */
.cvol { display: flex; flex-wrap: wrap; gap: 12px 40px; margin-bottom: 36px; }
.cvol li { font-size: 14px; display: flex; align-items: baseline; gap: 4px; }
.cvol b { font-family: var(--font-en); font-weight: 200; font-size: 40px; line-height: 1; color: var(--li); }
.cvol span { color: var(--ink-2); margin-left: 8px; }
.cgrid { display: none; gap: 20px; overflow-x: auto; padding-bottom: 12px; scroll-snap-type: x mandatory; scrollbar-width: none; margin-right: calc((100% - 100vw) / 2); padding-right: 48px; }
.cgrid::-webkit-scrollbar { display: none; }
.ctabs-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 28px; }
.ctabs-row .ctabs { margin-bottom: 0; }
.cnav { display: flex; gap: 8px; flex: none; }
.cnav button { width: 44px; height: 44px; border-radius: 50%; border: 1px solid #c9ccd0; background: var(--white); cursor: pointer; display: grid; place-items: center; font-size: 16px; color: var(--ink); transition: background .2s, color .2s; }
.cnav button:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.cgrid.is-on { display: flex; animation: st-in .45s var(--ease); }
.ccard { flex: none; width: 264px; scroll-snap-align: start; }
.ccard--more .ccard__img { background: var(--li); color: #fff; display: grid; place-items: center; text-align: center; font-size: 14px; line-height: 1.6; }
.ccard--more b { display: block; font-family: var(--font-en); font-weight: 200; font-size: 40px; line-height: 1.1; }
.ccard__img { aspect-ratio: 16 / 9; border-radius: 6px; overflow: hidden; background: #e9edf1; }
.ccard__img img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.05); transition: transform .5s var(--ease); }
.ccard:hover .ccard__img img { transform: scale(1.09); }
.ccard__type { font-size: 11px; color: var(--ink-2); margin-top: 12px; letter-spacing: .06em; }
.ccard__title { font-size: 15px; line-height: 1.6; margin-top: 4px; }
@media (max-width: 860px) {
  .ccard { width: 220px; }
  .cnav { display: none; }
  .ccard__title { font-size: 14px; }
  .cvol b { font-size: 32px; }
}

/* ---------- ニュース（濃紺の帯） ---------- */
.nw { position: relative; overflow: hidden; background: #0b1f33; color: #fff; padding-block: clamp(72px, 9vw, 120px); }
.nw::before { content: ""; position: absolute; width: 520px; height: 520px; right: -160px; top: -220px; border-radius: 50%; background: radial-gradient(circle, rgba(10, 102, 194, .55), transparent 70%); }
.nw__inner { position: relative; display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.nw__label { display: flex; align-items: center; gap: 10px; font-family: var(--font-en); font-size: 13px; letter-spacing: .3em; color: #70b5f9; }
.nw__label i { width: 8px; height: 8px; border-radius: 50%; background: #70b5f9; box-shadow: 0 0 0 0 rgba(112, 181, 249, .7); animation: nw-pulse 2s infinite; }
.nw__lead { font-size: var(--fs-h2); font-weight: 300; line-height: 1.6; margin-top: 20px; }
.nw__list { border-top: 1px solid rgba(255, 255, 255, .2); }
.nw__list li { border-bottom: 1px solid rgba(255, 255, 255, .2); }
.nw__row { display: grid; grid-template-columns: 84px minmax(0, 220px) minmax(0, 1fr) 40px; gap: 20px; align-items: center; padding: 28px 8px; transition: background .25s; }
.nw__row:hover { background: rgba(255, 255, 255, .05); }
.nw__meta { display: grid; gap: 6px; justify-items: start; }
.nw__meta time { font-family: var(--font-en); font-size: 13px; color: rgba(255, 255, 255, .6); letter-spacing: .06em; }
.nw__meta em { font-style: normal; font-size: 11px; padding: 2px 8px; border-radius: 999px; border: 1px solid rgba(112, 181, 249, .6); color: #70b5f9; }
.nw__lead em { font-style: normal; color: #70b5f9; }
.nw__sub { font-size: 14px; color: rgba(255, 255, 255, .7); line-height: 1.9; margin-top: 20px; }
.nw__org { line-height: 1.35; font-size: clamp(22px, 2.2vw, 30px); font-weight: 300; letter-spacing: .04em; }
.nw__title { font-size: 15px; line-height: 1.8; color: rgba(255, 255, 255, .85); }
.nw__title small { display: block; font-size: 11px; color: rgba(255, 255, 255, .45); margin-top: 4px; }
.nw__go { width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .35); display: grid; place-items: center; font-size: 14px; transition: background .25s, color .25s; }
.nw__row:hover .nw__go { background: #fff; color: #0b1f33; }
@media (max-width: 860px) {
  .nw__inner { grid-template-columns: 1fr; }
  .nw__row { grid-template-columns: minmax(0, 1fr) 36px; gap: 6px 12px; padding: 22px 0; }
  .nw__meta { grid-column: 1; display: flex; gap: 10px; align-items: center; }
  .nw__org { grid-column: 1; }
  .nw__title { grid-column: 1; }
  .nw__go { grid-column: 2; grid-row: 1 / 4; width: 36px; height: 36px; }
}

/* ---------- 人事の3つの不安に答える ---------- */
.qa3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.qa { background: var(--white); border-radius: 10px; padding: 32px 28px; display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 24px; }
.qa__q { font-size: 18px; line-height: 1.6; }
.qa__vis { min-height: 170px; display: grid; align-content: center; gap: 10px; padding: 20px; border-radius: 8px; background: #eef3f8; }
.qa__vis--big { justify-items: center; text-align: center; }
.qa__vis--big p { font-family: var(--font-en); font-weight: 200; font-size: 80px; line-height: 1; color: var(--li); }
.qa__vis--big small { font-family: var(--font-ja); font-size: 22px; margin: 0 2px; }
.qa__vis--big > span { font-size: 12px; color: var(--ink-2); }
.qa__note { background: var(--white); border-radius: 8px; padding: 10px 12px; font-size: 13px; box-shadow: 0 6px 16px rgba(10, 52, 102, .08); display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; }
.qa__note b { grid-column: 1 / -1; font-size: 10px; font-weight: 500; color: var(--li); }
.qa__note span { font-family: var(--font-en); font-size: 11px; color: var(--ink-2); }
.qa__note + .qa__note { opacity: .7; transform: scale(.96); }
.qa__bars { display: grid; gap: 10px; }
.qa__bars li { display: grid; grid-template-columns: 2.5em minmax(0, 1fr) 2.6em; gap: 8px; align-items: center; font-size: 12px; }
.qa__bars i { display: block; height: 10px; border-radius: 0 3px 3px 0; background: var(--li); width: var(--w); }
.qa__bars b { font-family: var(--font-en); font-weight: 400; text-align: right; }
.qa__cap { font-size: 10px; color: var(--ink-2); text-align: right; }
.qa__a { font-size: 14px; color: var(--ink-2); line-height: 1.9; }
@media (max-width: 860px) {
  .qa3 { grid-template-columns: 1fr; }
  .qa { grid-row: auto; grid-template-rows: none; }
}

/* 導入から定着まで（公開後の列を追加） */
.tl--weeks .tl__months, .tl--weeks .tl__track { grid-template-columns: repeat(12, minmax(0, 1fr)) minmax(0, 1.8fr); }
.tl__after { font-family: var(--font-ja) !important; font-size: 11px !important; }
.tl__seg.lp4 { grid-column: 13 / 14; background: #eaf1f8; color: var(--li); }
.tl__sup { font-size: 12px; background: var(--li-tint) !important; color: var(--li) !important; border: 0 !important; }
.tl__sup.lp4 { background: var(--li) !important; color: #fff !important; }
.tl__descs--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.tl__desc.lp4 { border-color: var(--li); }
.ov__pre { margin: 0 4px 0 0 !important; }
@media (max-width: 860px) {
  .tl__descs--4 { grid-template-columns: 1fr; }
  .tl__sup { font-size: 0 !important; }
  .tl__after { font-size: 9px !important; }
}
/* 5ステップの画面：画像の元の大きさに関係なく、枠に対して同じ大きさで表示 */
.st__shot img { width: 88%; height: auto; max-height: none; }
