/* Cheerway 線上課程 — 前台樣式 v1.0.0 */

:root{
  --cw-navy:#0B2A45;
  --cw-blue:#1B82C0;
  --cw-mist:#EAF1F6;
  --cw-gold:#EE9F4E;
  --cw-ink:#1c2733;
  --cw-muted:#5b6a78;
  --cw-line:#dbe4ec;
  --cw-radius:12px;
}

[hidden]{display:none !important;}

/* ---------- 版面容器：覆蓋佈景主題的 flex 規則 ---------- */
/* 部分主題把內容區設為 flex row，會讓 Hero 與內文變成左右並排。
   強制整頁為單一 block 容器，並讓直接子層各自佔滿一整列。 */
.cw-page{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  flex:0 0 100% !important;
  float:none !important;
  margin:0 !important;
  padding:0 !important;
}
.cw-page > *{
  display:block;
  width:100% !important;
  max-width:100% !important;
  flex:0 0 100% !important;
  float:none !important;
}
/* 主題若把 .cw-page 的父層設成 flex，強制換行讓子元素獨占一列 */
.cw-page,
.cw-hero,
.cw-wrap{box-sizing:border-box;}

.cw-wrap{max-width:1400px;margin:0 auto;padding:40px 24px 80px;box-sizing:border-box;}

/* ---------- 閱讀進度 ---------- */
.cw-progress{position:fixed;top:0;left:0;right:0;height:3px;background:transparent;z-index:9999;}
.cw-progress__bar{display:block;height:100%;width:0;background:var(--cw-gold);transition:width .1s linear;}

/* ---------- 麵包屑 ---------- */
.cw-crumbs{font-size:14px;color:var(--cw-muted);margin-bottom:24px;}
.cw-crumbs a{color:var(--cw-muted);text-decoration:none;}
.cw-crumbs a:hover{color:var(--cw-blue);text-decoration:underline;}
.cw-crumbs__sep{margin:0 8px;opacity:.5;}

/* ---------- 版面 ---------- */
.cw-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:48px;align-items:start;}

/* ---------- 側邊目錄 ---------- */
.cw-toc{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto;
  border:1px solid var(--cw-line);border-radius:var(--cw-radius);background:#fff;padding:8px;}
.cw-toc__toggle{display:none;}
.cw-toc__module{padding:6px 4px;}
.cw-toc__modtitle{display:block;font-weight:700;font-size:14px;color:var(--cw-navy);
  text-decoration:none;padding:8px 10px;border-radius:8px;}
.cw-toc__modtitle:hover{background:var(--cw-mist);}
.cw-toc__list{list-style:none;margin:0;padding:0 0 0 6px;display:none;}
.cw-toc__module.is-open .cw-toc__list{display:block;}
.cw-toc__list li{margin:0;}
.cw-toc__list a{display:flex;gap:8px;align-items:baseline;padding:7px 10px;
  font-size:13.5px;line-height:1.5;color:var(--cw-muted);text-decoration:none;border-radius:8px;}
.cw-toc__list a:hover{background:var(--cw-mist);color:var(--cw-navy);}
.cw-toc__list li.is-current a{background:var(--cw-navy);color:#fff;font-weight:600;}
.cw-toc__list li.is-current .cw-toc__num{color:var(--cw-gold);}
.cw-toc__num{flex:0 0 auto;font-variant-numeric:tabular-nums;font-weight:700;font-size:12px;color:var(--cw-blue);}

/* ---------- 單元頁首 ---------- */
.cw-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.cw-tag{display:inline-block;font-size:12.5px;line-height:1;padding:7px 11px;border-radius:999px;
  background:var(--cw-mist);color:var(--cw-navy);text-decoration:none;}
.cw-tag--module{background:var(--cw-navy);color:#fff;font-weight:600;}
.cw-tag--module:hover{background:var(--cw-blue);color:#fff;}
.cw-tag--role{background:#fff;border:1px solid var(--cw-line);color:var(--cw-muted);}

.cw-title{font-size:42px;line-height:1.25;font-weight:800;color:var(--cw-navy);margin:0 0 16px;}
.cw-lede{font-size:19px;line-height:1.7;color:var(--cw-muted);margin:0 0 28px;
  padding-left:16px;border-left:4px solid var(--cw-gold);}

/* ---------- 角色路徑切換 ---------- */
.cw-paths{display:flex;flex-wrap:wrap;align-items:center;gap:12px;
  padding:14px 16px;background:var(--cw-mist);border-radius:var(--cw-radius);margin-bottom:28px;}
.cw-paths__label{font-size:13px;font-weight:700;color:var(--cw-navy);}
.cw-paths__btns{display:flex;flex-wrap:wrap;gap:8px;}
.cw-path{display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;
  border:1px solid var(--cw-line);background:#fff;color:var(--cw-muted);
  font-size:13.5px;font-weight:600;padding:8px 14px;border-radius:8px;line-height:1.3;}
.cw-path small{font-size:11px;font-weight:400;opacity:.75;}
.cw-path:hover{border-color:var(--cw-blue);color:var(--cw-blue);}
.cw-path.is-active{background:var(--cw-navy);border-color:var(--cw-navy);color:#fff;}
.cw-path.is-active small{opacity:.85;}

/* 路徑收合：內容永遠留在 DOM，只用 CSS 隱藏（確保 SEO 與 AI 可讀全文） */
.cw-path-captain .cw-sec--crew{display:none;}
.cw-path-navigator .cw-sec--captain{display:none;}
.cw-path-sailor .cw-sec--captain{display:none;}

/* ---------- 影片 ---------- */
.cw-video{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;
  border-radius:var(--cw-radius);margin-bottom:20px;background:#000;}
.cw-video iframe,.cw-video object,.cw-video embed{position:absolute;inset:0;width:100%;height:100%;border:0;}
.cw-chapters{background:var(--cw-mist);border-radius:var(--cw-radius);padding:16px 20px;margin-bottom:28px;}
.cw-chapters__title{font-weight:700;color:var(--cw-navy);font-size:14px;margin-bottom:8px;}
.cw-chapters ol{margin:0;padding-left:20px;color:var(--cw-muted);font-size:14.5px;line-height:1.8;}

.cw-hero-img{margin:0 0 28px;}
.cw-hero-img img{width:100%;height:auto;border-radius:var(--cw-radius);display:block;}

/* ---------- 內文 ---------- */
.cw-content{font-size:17.5px;line-height:1.9;color:var(--cw-ink);}
.cw-content > h2{font-size:28px;line-height:1.4;font-weight:800;color:var(--cw-navy);
  margin:52px 0 18px;padding-top:8px;border-top:2px solid var(--cw-mist);}
.cw-content > h3{font-size:21px;line-height:1.5;font-weight:700;color:var(--cw-navy);margin:36px 0 14px;}
.cw-content > h4{font-size:18px;font-weight:700;color:var(--cw-navy);margin:28px 0 10px;}
.cw-content p{margin:0 0 20px;}
.cw-content ul,.cw-content ol{margin:0 0 22px;padding-left:24px;}
.cw-content li{margin-bottom:8px;}
.cw-content a{color:var(--cw-blue);text-decoration:underline;text-underline-offset:2px;}
.cw-content strong{color:var(--cw-navy);}
.cw-content blockquote{margin:26px 0;padding:16px 22px;background:var(--cw-mist);
  border-left:4px solid var(--cw-blue);border-radius:0 8px 8px 0;color:var(--cw-navy);}
.cw-content blockquote p:last-child{margin-bottom:0;}

/* 圖片 */
.cw-content img{max-width:100%;height:auto;border-radius:var(--cw-radius);display:block;}
.cw-content figure{margin:32px 0;}
.cw-content figure.alignleft,.cw-content .alignleft{float:left;margin:6px 28px 20px 0;max-width:50%;}
.cw-content figure.alignright,.cw-content .alignright{float:right;margin:6px 0 20px 28px;max-width:50%;}
.cw-content figure.aligncenter,.cw-content .aligncenter{margin-left:auto;margin-right:auto;}
.cw-content figcaption,.cw-content .wp-caption-text{font-size:14px;color:var(--cw-muted);
  text-align:center;margin-top:10px;line-height:1.6;}

/* 表格 */
.cw-content table{width:100%;border-collapse:collapse;margin:28px 0;font-size:15.5px;}
.cw-content th,.cw-content td{border:1px solid var(--cw-line);padding:11px 14px;text-align:left;vertical-align:top;}
.cw-content th{background:var(--cw-navy);color:#fff;font-weight:700;}
.cw-content tbody tr:nth-child(even){background:#f7fafc;}

/* ---------- 分層區塊 ---------- */
.cw-sec{margin:32px 0;border:1px solid var(--cw-line);border-radius:var(--cw-radius);
  overflow:hidden;background:#fff;}
.cw-sec__head{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;
  padding:16px 20px;background:var(--cw-mist);font-weight:700;color:var(--cw-navy);}
.cw-sec__head::-webkit-details-marker{display:none;}
.cw-sec__title{font-size:17px;}
.cw-sec__sub{font-size:12.5px;font-weight:400;color:var(--cw-muted);
  background:#fff;border-radius:999px;padding:4px 10px;}
.cw-sec__chev{margin-left:auto;width:9px;height:9px;border-right:2px solid var(--cw-navy);
  border-bottom:2px solid var(--cw-navy);transform:rotate(45deg);transition:transform .2s;}
.cw-sec[open] .cw-sec__chev{transform:rotate(-135deg);}
.cw-sec__body{padding:22px 24px 6px;font-size:17px;line-height:1.9;}
.cw-sec--captain{border-left:4px solid var(--cw-navy);}
.cw-sec--captain .cw-sec__head{background:linear-gradient(90deg,#0B2A45 0%,#164263 100%);color:#fff;}
.cw-sec--captain .cw-sec__chev{border-color:#fff;}
.cw-sec--captain .cw-sec__sub{background:rgba(255,255,255,.16);color:#fff;}
.cw-sec--crew{border-left:4px solid var(--cw-blue);}

.cw-note{margin:28px 0;padding:18px 22px;background:var(--cw-mist);
  border-radius:var(--cw-radius);border-left:4px solid var(--cw-gold);}
.cw-note__title{font-weight:700;color:var(--cw-navy);margin-bottom:8px;}
.cw-note__body p:last-child{margin-bottom:0;}

/* ---------- 船長畫重點 ---------- */
.cw-points{margin:48px 0 0;padding:28px 32px;border-radius:var(--cw-radius);
  background:linear-gradient(135deg,#0B2A45 0%,#164263 100%);color:#fff;}
.cw-points__title{font-size:19px;font-weight:800;margin-bottom:16px;
  padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.2);}
.cw-points__title::before{content:"⚓";margin-right:10px;}
.cw-points ul{list-style:none;margin:0;padding:0;}
.cw-points li{position:relative;padding-left:26px;margin-bottom:13px;
  font-size:16.5px;line-height:1.8;color:rgba(255,255,255,.94);}
.cw-points li:last-child{margin-bottom:0;}
.cw-points li::before{content:"";position:absolute;left:4px;top:12px;width:8px;height:8px;
  border-radius:50%;background:var(--cw-gold);}

/* ---------- 檢核表 ---------- */
.cw-check{margin:32px 0 0;padding:24px 28px;border:1px solid var(--cw-line);
  border-radius:var(--cw-radius);background:#fff;}
.cw-check__head{display:flex;align-items:center;justify-content:space-between;
  margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--cw-line);}
.cw-check__title{font-size:17px;font-weight:800;color:var(--cw-navy);}
.cw-check__count{font-size:14px;color:var(--cw-muted);font-variant-numeric:tabular-nums;}
.cw-check__done{font-weight:800;color:var(--cw-gold);}
.cw-check__list{list-style:none;margin:0 0 16px;padding:0;}
.cw-check__list li{margin-bottom:10px;}
.cw-check__list label{display:flex;gap:12px;align-items:flex-start;cursor:pointer;
  font-size:16px;line-height:1.7;color:var(--cw-ink);}
.cw-check__box{flex:0 0 auto;width:19px;height:19px;margin-top:4px;accent-color:var(--cw-blue);cursor:pointer;}
.cw-check__box:checked + span{color:var(--cw-muted);text-decoration:line-through;}
.cw-check__reset{background:none;border:1px solid var(--cw-line);color:var(--cw-muted);
  font-size:13px;padding:7px 14px;border-radius:8px;cursor:pointer;}
.cw-check__reset:hover{border-color:var(--cw-blue);color:var(--cw-blue);}

/* ---------- 工具嵌入 ---------- */
.cw-tool{margin:32px 0 0;padding:24px 28px;border:1px dashed var(--cw-blue);
  border-radius:var(--cw-radius);background:#f7fbfe;}
.cw-tool__title{font-size:17px;font-weight:800;color:var(--cw-navy);margin-bottom:16px;}

/* ---------- CTA ---------- */
.cw-cta{margin:40px 0 0;padding:32px;border-radius:var(--cw-radius);
  background:var(--cw-mist);border:1px solid var(--cw-line);text-align:center;}
.cw-cta__title{font-size:22px;font-weight:800;color:var(--cw-navy);margin-bottom:10px;}
.cw-cta__text{font-size:16px;line-height:1.8;color:var(--cw-muted);margin:0 auto 20px;max-width:640px;}
.cw-cta__btn{display:inline-block;background:var(--cw-gold);color:#fff !important;
  font-weight:700;font-size:16px;text-decoration:none !important;
  padding:14px 34px;border-radius:8px;transition:filter .15s,transform .15s;}
.cw-cta__btn:hover{filter:brightness(1.06);transform:translateY(-1px);}

/* ---------- 上下單元 ---------- */
.cw-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:48px;
  padding-top:32px;border-top:1px solid var(--cw-line);}
.cw-nav__item{display:flex;flex-direction:column;gap:6px;padding:18px 22px;
  border:1px solid var(--cw-line);border-radius:var(--cw-radius);
  text-decoration:none;background:#fff;transition:border-color .15s,transform .15s;}
.cw-nav__item:hover{border-color:var(--cw-blue);transform:translateY(-2px);}
.cw-nav__item--empty{border:none;background:none;}
.cw-nav__item--next{text-align:right;}
.cw-nav__dir{font-size:12.5px;font-weight:700;color:var(--cw-blue);}
.cw-nav__name{font-size:16px;font-weight:700;color:var(--cw-navy);line-height:1.5;}

/* ---------- 模組首頁 ---------- */
.cw-modhead{margin-bottom:40px;padding-bottom:32px;border-bottom:2px solid var(--cw-mist);}
.cw-modhead__title{font-size:44px;line-height:1.25;font-weight:800;color:var(--cw-navy);margin:0 0 16px;}
.cw-modhead__q{font-size:19px;line-height:1.7;color:var(--cw-muted);margin:0 0 12px;
  padding-left:16px;border-left:4px solid var(--cw-gold);}
.cw-modhead__q strong{color:var(--cw-navy);}
.cw-modhead__sum{font-size:17px;line-height:1.85;color:var(--cw-ink);margin:0 0 16px;max-width:800px;}
.cw-modhead__stat{display:inline-block;font-size:13px;font-weight:700;
  background:var(--cw-navy);color:#fff;padding:7px 14px;border-radius:999px;}

.cw-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;}
.cw-card{display:flex;flex-direction:column;gap:10px;padding:24px;background:#fff;
  border:1px solid var(--cw-line);border-radius:var(--cw-radius);
  text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s;}
.cw-card:hover{border-color:var(--cw-blue);transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(11,42,69,.09);}
.cw-card__num{font-size:13px;font-weight:800;color:var(--cw-gold);font-variant-numeric:tabular-nums;}
.cw-card__title{font-size:19px;font-weight:700;color:var(--cw-navy);line-height:1.5;}
.cw-card__sum{font-size:15px;color:var(--cw-muted);line-height:1.75;}
.cw-card__meta{margin-top:auto;padding-top:8px;font-size:13px;color:var(--cw-muted);}
.cw-empty{color:var(--cw-muted);padding:40px 0;text-align:center;}

/* ---------- 課程首頁 Hero ---------- */
.cw-hero{background:linear-gradient(135deg,#0B2A45 0%,#164263 60%,#1B82C0 160%);color:#fff;}
.cw-hero__inner{max-width:1400px;margin:0 auto;padding:100px 24px;box-sizing:border-box;}
.cw-hero__eyebrow{font-size:14px;font-weight:700;letter-spacing:.06em;
  color:var(--cw-gold);margin:0 0 20px;text-transform:none;}
.cw-hero__headline{font-size:64px;line-height:1.18;font-weight:800;margin:0 0 24px;max-width:16em;}
.cw-hero__intro{font-size:16px;line-height:1.9;color:rgba(255,255,255,.88);margin:0 0 24px;max-width:44em;}
.cw-hero__list{list-style:none;margin:0 0 24px;padding:0;}
.cw-hero__list li{position:relative;padding-left:28px;margin-bottom:11px;
  font-size:16px;line-height:1.7;color:rgba(255,255,255,.92);}
.cw-hero__list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--cw-gold);font-weight:800;}
.cw-hero__special{font-size:16px;line-height:1.8;color:rgba(255,255,255,.75);margin:0 0 28px;}
.cw-hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px;}
.cw-hero__btn{display:inline-block;background:var(--cw-gold);color:#fff !important;font-weight:700;
  font-size:16px;text-decoration:none !important;padding:15px 36px;border-radius:8px;}
.cw-hero__btn:hover{filter:brightness(1.06);}
.cw-hero__stat{font-size:14px;color:rgba(255,255,255,.72);}

/* ---------- 全書索引 ---------- */
.cw-index__module{margin-bottom:44px;}
.cw-index__title{font-size:24px;font-weight:800;margin:0 0 8px;}
.cw-index__title a{color:var(--cw-navy);text-decoration:none;}
.cw-index__title a:hover{color:var(--cw-blue);}
.cw-index__q{font-size:15.5px;color:var(--cw-muted);margin:0 0 16px;
  padding-left:14px;border-left:3px solid var(--cw-gold);}
.cw-index__list{list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:8px;}
.cw-index__list a{display:flex;gap:12px;align-items:baseline;padding:12px 16px;
  border:1px solid var(--cw-line);border-radius:8px;text-decoration:none;
  background:#fff;transition:border-color .15s,background .15s;}
.cw-index__list a:hover{border-color:var(--cw-blue);background:var(--cw-mist);}
.cw-index__num{flex:0 0 auto;font-size:13px;font-weight:800;color:var(--cw-gold);
  font-variant-numeric:tabular-nums;}
.cw-index__name{font-size:15.5px;color:var(--cw-navy);line-height:1.6;}

/* ---------- 響應式 ---------- */
@media (max-width:1024px){
  .cw-layout{grid-template-columns:1fr;gap:24px;}
  .cw-toc{position:static;max-height:none;padding:0;}
  .cw-toc__toggle{display:flex;align-items:center;justify-content:space-between;width:100%;
    background:var(--cw-mist);border:none;padding:14px 18px;border-radius:var(--cw-radius);
    font-size:15px;font-weight:700;color:var(--cw-navy);cursor:pointer;}
  .cw-toc__chev{width:9px;height:9px;border-right:2px solid var(--cw-navy);
    border-bottom:2px solid var(--cw-navy);transform:rotate(45deg);transition:transform .2s;}
  .cw-toc__toggle[aria-expanded="true"] .cw-toc__chev{transform:rotate(-135deg);}
  .cw-toc__body{display:none;padding:8px 0;}
  .cw-toc__body.is-open{display:block;}
}

@media (max-width:768px){
  .cw-wrap{padding:24px 18px 60px;}
  .cw-title{font-size:30px;}
  .cw-lede{font-size:17px;}
  .cw-content{font-size:16.5px;}
  .cw-content > h2{font-size:23px;margin-top:40px;}
  .cw-content > h3{font-size:19px;}
  .cw-content figure.alignleft,.cw-content .alignleft,
  .cw-content figure.alignright,.cw-content .alignright{float:none;margin:24px auto;max-width:100%;}
  .cw-content table{display:block;overflow-x:auto;white-space:nowrap;}
  .cw-points{padding:22px 20px;}
  .cw-check,.cw-tool{padding:20px;}
  .cw-cta{padding:24px 20px;}
  .cw-nav{grid-template-columns:1fr;}
  .cw-nav__item--next{text-align:left;}
  .cw-modhead__title{font-size:30px;}
  .cw-hero__inner{padding:60px 18px;}
  .cw-hero__headline{font-size:36px;}
  .cw-index__list{grid-template-columns:1fr;}
  .cw-paths{flex-direction:column;align-items:flex-start;}
}
