/* The Apprenticeship — lesson + module-hub chrome.
   Loaded ONLY on /apprenticeship/<module>/ pages, after tokens.css and base.css.
   Ported from the standalone tpg-curriculum project 2026-08-11.
   Notes for anyone editing this:
   - The :root block below re-declares --kraft/--cream/--walnut with values IDENTICAL
     to tokens.css, and adds --ink/--forest/--terra/--tint which the site does not define.
     Additive, no conflict. Do not 'fix' it by deleting the block.
   - base.css already does *{box-sizing:border-box;margin:0;padding:0}, so the
     curriculum's own reset was removed. Every content element here sets its own
     margins explicitly, which is why the global margin:0 does not collapse the layout.
   - .btn also exists in grow-guides.css. These pages never load that sheet. If that
     ever changes, namespace this one. */
:root{
  --kraft:#E8DDC8;--cream:#F4EEDE;--walnut:#2A211B;--ink:#5C4F40;
  --forest:#294638;--terra:#C97557;--tint:#FAF6EC;
}
body{font-family:'Inter',Helvetica,Arial,sans-serif;background:#DDD3BC;color:var(--walnut);line-height:1.65;margin:0;}

/* progress rail */
.railwrap{position:sticky;top:0;z-index:30;background:var(--cream);border-bottom:1px solid var(--kraft);padding:14px 20px 12px;}
.railwrap-inner{max-width:760px;margin:0 auto;}
.rail-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px;}
.rail-title{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:15px;color:var(--walnut);}
.rail-title span{color:var(--terra);}
.rail-count{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);}
.rail{display:flex;gap:5px;}
.rail .node{flex:1;height:7px;border-radius:4px;background:var(--kraft);cursor:pointer;transition:background .25s;position:relative;}
.rail .node.done{background:var(--forest);}
.rail .node.active{background:var(--terra);}
.rail .node:hover{outline:2px solid var(--terra);outline-offset:1px;}

.stage{max-width:760px;margin:0 auto;padding:0 24px 80px;}
.lesson{display:none;animation:fade .35s ease;}
.lesson.active{display:block;}
@keyframes fade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

.l-head{padding:40px 0 20px;border-bottom:1px solid var(--kraft);margin-bottom:28px;}
.l-eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--terra);margin-bottom:10px;}
.l-eyebrow .dot{color:var(--ink);margin:0 8px;}
h1.l-title{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:34px;line-height:1.12;margin:0 0 10px;letter-spacing:-.01em;}
.l-sub{font-family:'Source Serif 4',Georgia,serif;font-style:italic;font-size:18px;color:var(--ink);margin:0;line-height:1.4;}

.body{font-size:16.5px;line-height:1.7;}
.body p{margin:0 0 16px;}
.body h3{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:18px;color:var(--forest);margin:28px 0 10px;}
.body ul,.body ol{padding-left:22px;margin:0 0 16px;}
.body li{margin-bottom:7px;}
.body strong{font-weight:600;}
.body code{background:var(--kraft);padding:1px 5px;border-radius:2px;font-size:13.5px;}
.body .cite{color:var(--ink);}
.body em{font-style:italic;}
.equation{background:var(--kraft);padding:18px 22px;margin:20px 0;text-align:center;font-family:'Source Serif 4',Georgia,serif;font-size:18px;border-radius:4px;border-left:3px solid var(--forest);}

.figure{display:grid;grid-template-columns:1fr 240px;align-items:stretch;margin:30px 0;border:1px solid var(--ink);background:var(--cream);border-radius:4px;overflow:hidden;}
.figure > picture,.figure > .figlabel{min-width:0;}
.figure picture{display:block;}
.figure img{width:100%;height:auto;display:block;}
.figcap{background:var(--tint);border-left:1px solid var(--ink);padding:16px 18px;font-family:'Source Serif 4',Georgia,serif;font-size:13.5px;line-height:1.45;display:flex;flex-direction:column;justify-content:center;}
.figcap p{margin:0;}
.figcap strong{color:var(--terra);margin-right:5px;}
/* keep sub/sup from opening up the line below them */
.body sub,.body sup,.figcap sub,.figcap sup{font-size:.72em;line-height:0;position:relative;vertical-align:baseline;}
.body sub,.figcap sub{bottom:-0.25em;}
.body sup,.figcap sup{top:-0.45em;}

/* labeled anatomy plates: % positioned chips over the image (responsive) */
.figlabel{position:relative;display:block;line-height:0;}
.figlabel picture{display:block;line-height:0;}
.figlabel img{display:block;width:100%;height:auto;}
.fl{position:absolute;transform:translate(-50%,-50%);background:rgba(244,238,222,.93);border:1px solid var(--ink);color:var(--walnut);font-family:'Inter',Helvetica,Arial,sans-serif;font-size:11.5px;line-height:1.15;font-weight:600;letter-spacing:.01em;padding:2px 6px;border-radius:3px;white-space:nowrap;box-shadow:0 1px 2px rgba(42,33,27,.25);z-index:2;}
.fl.it{font-style:italic;font-weight:600;}
@media(max-width:640px){ .fl{font-size:9px;padding:1px 4px;} }

/* pronunciation respelling, emitted by the {% say %} shortcode. The rule also
   lives in guide-article.css for the Libraries; lesson pages don't load that
   sheet, so it is repeated here. Keep the two in sync. */
.pron{font-size:.82em;font-style:italic;font-weight:400;color:var(--ink);white-space:nowrap;}

/* tier badge */
.tier{display:inline-block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;padding:2px 8px;border-radius:10px;vertical-align:middle;margin-left:8px;}
.tier.t1{background:#F3E8D2;color:#9A6638;}
.tier.t2{background:#E6EDE8;color:var(--forest);}
.tier.t3{background:#E7DEEF;color:#5A4A78;}

/* retrieval check (Tier 1) */
.check{background:#F0E5D0;border:1px solid var(--terra);padding:22px 26px;margin:34px 0 8px;border-radius:5px;}
.check .c-eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);margin-bottom:6px;}
.check h3{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:19px;margin:0 0 6px;}
.check>p{font-size:14px;margin:0 0 14px;color:var(--ink);}
.check details{background:var(--cream);border:1px solid var(--kraft);border-radius:4px;margin-bottom:9px;}
.check details[open]{border-color:var(--terra);}
.check summary{padding:13px 42px 13px 16px;font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:15.5px;cursor:pointer;list-style:none;position:relative;line-height:1.4;}
.check summary::-webkit-details-marker{display:none;}
.check summary::after{content:"+";position:absolute;right:16px;top:10px;color:var(--terra);font-size:21px;font-family:'Source Serif 4',Georgia,serif;}
.check details[open] summary::after{content:"\2212";}
.check .ans{padding:10px 16px 16px;font-size:14.5px;line-height:1.6;border-top:1px solid var(--kraft);}

/* lesson footer nav */
.l-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:40px auto 0;padding:24px 24px 0;max-width:760px;border-top:1px solid var(--kraft);}
.btn{display:inline-block;background:var(--walnut);color:var(--cream);padding:13px 26px;text-decoration:none;font-size:13px;letter-spacing:.1em;text-transform:uppercase;border-radius:3px;border:none;cursor:pointer;font-family:'Inter',sans-serif;}
.btn:hover{background:var(--forest);}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--kraft);}
.btn.ghost:hover{background:var(--kraft);color:var(--walnut);}
.btn:disabled{opacity:.4;cursor:default;}
.btn.done-state{background:var(--forest);}

/* ===== Tier 3 simulation ===== */
.sim{background:var(--tint);border:1px solid var(--kraft);border-left:4px solid #5A4A78;border-radius:0 5px 5px 0;padding:22px 24px;margin:30px 0;}
.sim .s-eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#5A4A78;margin-bottom:8px;font-weight:600;}
.sim h3{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:19px;margin:0 0 4px;}
.sim .s-hint{font-size:14px;color:var(--ink);margin:0 0 16px;}
.sim-stage{display:grid;grid-template-columns:200px 1fr;gap:22px;align-items:center;}
.sim-readouts{font-size:14px;}
.sim-readouts .ro{margin-bottom:14px;}
.sim-readouts .ro-label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin-bottom:4px;}
.sim-readouts .meter{height:9px;background:var(--kraft);border-radius:5px;overflow:hidden;}
.sim-readouts .meter span{display:block;height:100%;background:var(--forest);width:30%;transition:width .2s;}
.sim-readouts .meter.tension span{background:var(--terra);}
.sim-control{margin-top:18px;}
.sim-control label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);display:block;margin-bottom:6px;}
.sim-control input[type=range]{width:100%;accent-color:var(--terra);}
.sim-svg-wrap{background:var(--cream);border:1px solid var(--kraft);border-radius:4px;padding:6px;}
svg.sim-svg{display:block;width:100%;height:auto;}

/* ===== Tier 2 generative sort ===== */
.sort{background:#E6EDE8;border:1px solid #C7D6CC;border-left:4px solid var(--forest);border-radius:0 5px 5px 0;padding:22px 24px;margin:30px 0;}
.sort .s-eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--forest);margin-bottom:8px;font-weight:600;}
.sort h3{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:19px;margin:0 0 4px;}
.sort .s-hint{font-size:14px;color:var(--ink);margin:0 0 16px;}
.sort-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.sort-col h4{font-family:'Inter',sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin:0 0 10px;}
.chip{background:var(--cream);border:1px solid var(--kraft);border-radius:5px;padding:12px 14px;margin-bottom:9px;font-size:14px;line-height:1.4;cursor:pointer;transition:all .15s;}
.chip:hover{border-color:var(--forest);}
.chip.signal.sel{border-color:var(--terra);background:#F0E5D0;box-shadow:0 0 0 2px var(--terra) inset;}
.chip.cause.sel{border-color:var(--terra);}
.chip.matched{opacity:.45;cursor:default;border-style:dashed;}
.chip.matched:hover{border-color:var(--kraft);}
.chip .tag{display:block;font-size:11px;color:var(--forest);margin-top:5px;font-style:italic;}
.sort-status{margin-top:14px;font-size:14px;font-family:'Source Serif 4',Georgia,serif;font-style:italic;color:var(--ink);min-height:22px;}
.sort-status.win{color:var(--forest);font-weight:600;font-style:normal;}
.sort-reveal{display:none;margin-top:20px;}
.sort-reveal.show{display:block;animation:fade .4s ease;}

/* field exercise */
.fx{background:var(--kraft);border-left:4px solid var(--forest);padding:26px 30px;margin:30px 0;border-radius:0 4px 4px 0;}
.fx .fx-eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--forest);margin-bottom:8px;}
.fx h3{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:23px;margin:0 0 12px;}
.fx p{font-size:15.5px;margin:0 0 12px;}
.fx-meta{display:flex;flex-wrap:wrap;gap:14px;padding:10px 0 14px;border-bottom:1px solid var(--cream);margin-bottom:18px;font-size:13px;color:var(--ink);}
.fx-meta .ml{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--forest);margin-right:4px;}
.obscard{background:var(--cream);border-radius:4px;padding:18px 20px;margin-bottom:14px;}
.obscard h4{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:18px;margin:0 0 4px;}
.obscard .om{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--terra);}
.obsrow{display:grid;grid-template-columns:54px 1fr;gap:14px;align-items:start;padding:12px;background:var(--kraft);border-radius:4px;margin-bottom:8px;}
.obsrow picture{display:block;}
.obsrow img{width:54px;height:54px;object-fit:cover;border-radius:4px;display:block;}
.obsrow .dir{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:15px;margin:0 0 3px;}
.obsrow .el{font-size:13.5px;margin:0;line-height:1.45;}

/* worksheet table (field exercise variant) */
.ws-lead{font-family:'Source Serif 4',Georgia,serif;font-style:italic;font-size:14.5px;color:var(--ink);margin:0 0 14px;line-height:1.5;}
.ws-scroll{overflow-x:auto;margin:0 0 12px;}
table.worksheet{width:100%;min-width:560px;border-collapse:collapse;font-size:13px;background:var(--cream);}
table.worksheet th,table.worksheet td{border:1px solid var(--kraft);padding:9px 10px;text-align:left;vertical-align:top;}
table.worksheet thead th{background:var(--forest);color:var(--cream);font-family:'Inter',sans-serif;font-weight:600;font-size:11px;letter-spacing:.04em;}
table.worksheet tbody tr.example td{background:#F0E5D0;font-style:italic;color:var(--ink);}
table.worksheet tbody td.blank{height:34px;}
.ws-tag{display:inline-block;font-family:'Inter',sans-serif;font-style:normal;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--terra);margin-right:6px;}
.ws-legend{font-family:'Inter',sans-serif;font-size:12px;color:var(--ink);line-height:1.6;margin:8px 0 0;}
.worksheet-card{background:var(--cream);border-radius:4px;padding:20px 22px;margin:0 0 14px;}
.fx-closing{font-family:'Source Serif 4',Georgia,serif;font-style:italic;font-size:14.5px;color:var(--walnut);margin:18px 0 0;text-align:center;line-height:1.5;}
.map-intro{margin:24px 0 10px;font-size:15.5px;line-height:1.6;}
.synthesis-closing{font-family:'Source Serif 4',Georgia,serif;font-size:16px;line-height:1.55;color:var(--walnut);text-align:center;margin:24px 0 0;font-style:italic;}

/* five-myths box (M3 synthesis) */
.myths{background:var(--cream);border:1px solid var(--kraft);border-left:4px solid var(--terra);border-radius:0 4px 4px 0;padding:22px 26px;margin:30px 0;}
.myths .m-eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);margin-bottom:6px;}
.myths h3{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:19px;margin:0 0 14px;}
.myth{margin:0 0 12px;}
.myth .claim{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-style:italic;color:var(--walnut);}
.myth .truth{display:block;font-size:14.5px;color:var(--ink);margin-top:3px;}

/* completion / seal */
.complete{text-align:center;padding:44px 24px;}
.seal{width:120px;height:120px;border:2px solid var(--walnut);border-radius:50%;margin:0 auto 18px;background:var(--cream);display:flex;align-items:center;justify-content:center;font-family:'Source Serif 4',Georgia,serif;font-style:italic;font-size:11px;color:var(--ink);text-align:center;padding:14px;line-height:1.35;transition:all .5s ease;}
.seal.unlocked{background:var(--walnut);color:var(--cream);transform:scale(1.06);box-shadow:0 0 0 8px rgba(41,70,56,.15);}
.complete .cg-statement{font-family:'Source Serif 4',Georgia,serif;font-style:italic;font-size:17px;max-width:460px;margin:0 auto 20px;}
.seal-note{font-family:'Source Serif 4',Georgia,serif;font-style:italic;font-size:13px;color:var(--ink);max-width:480px;margin:16px auto 0;line-height:1.45;}

.summary{background:var(--cream);border:1px solid var(--terra);padding:24px 28px;margin:30px 0;border-radius:4px;}
.summary .ls-eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);margin-bottom:6px;}
.summary h3{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:20px;margin:0 0 12px;}
.summary ul{margin:0;padding-left:20px;}
.summary li{font-size:14.5px;margin-bottom:8px;line-height:1.5;}

/* ===== hub ===== */
.hub{max-width:760px;margin:0 auto;padding:0 24px 90px;}
.hub-hero{margin:0 -24px 36px;border-top:1px solid var(--walnut);border-bottom:1px solid var(--walnut);background:var(--kraft);padding:44px 32px;}
.hub-hero-in{max-width:632px;margin:0 auto;}
.hub-eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--terra);margin-bottom:12px;}
h1.hub-title{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:44px;line-height:1.1;margin:0 0 12px;letter-spacing:-.01em;}
.hub-sub{font-family:'Source Serif 4',Georgia,serif;font-style:italic;font-size:19px;color:var(--ink);margin:0 0 24px;}
.hub-hero picture{display:block;}
.hub-hero img{width:100%;height:auto;display:block;border-radius:4px;border:1px solid var(--ink);}
.hub-intro{font-family:'Source Serif 4',Georgia,serif;font-size:18px;line-height:1.6;margin:0 0 28px;padding-bottom:24px;border-bottom:1px solid var(--kraft);}
.hub-progress{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin:0 0 18px;}
.hub-progress b{color:var(--forest);}
.lesson-list{list-style:none;padding:0;margin:0;}
.lesson-list li{margin:0 0 10px;}
.lesson-list a{display:flex;align-items:center;gap:16px;text-decoration:none;background:var(--tint);border:1px solid var(--kraft);border-left:4px solid var(--kraft);border-radius:4px;padding:16px 18px;transition:border-color .15s,background .15s;}
.lesson-list a:hover{border-left-color:var(--terra);background:var(--cream);}
.lesson-list a.done{border-left-color:var(--forest);}
.ll-num{font-family:'Source Serif 4',Georgia,serif;font-size:20px;color:var(--terra);min-width:30px;}
.ll-body{flex:1;}
.ll-title{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:17px;color:var(--walnut);display:block;}
.ll-mins{font-size:12px;color:var(--ink);}
.ll-check{font-size:18px;color:var(--forest);min-width:20px;text-align:right;}
.hub-sources{margin:36px 0 0;padding-top:24px;border-top:1px solid var(--kraft);}
.hub-sources h2{font-family:'Source Serif 4',Georgia,serif;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin:0 0 10px;}
.hub-sources p{font-size:13px;line-height:1.5;color:var(--ink);margin:0 0 7px;}
.hub-sources em{font-style:italic;}

@media(max-width:640px){
  h1.l-title{font-size:27px;}
  h1.hub-title{font-size:34px;}
  .sim-stage{grid-template-columns:1fr;}
  .sort-cols{grid-template-columns:1fr;}
  .stage{padding:0 18px 60px;}
  .l-foot{flex-wrap:wrap;}
  .figure{grid-template-columns:1fr;}
  .figcap{border-left:none;border-top:1px solid var(--ink);}
}

/* ===== print / PDF (US Letter, hybrid white body + faint callouts) ===== */
@media print{
  @page{size:Letter;margin:0.7in 0.75in;}
  html,body{background:#fff !important;}
  body{color:var(--walnut);font-size:11pt;line-height:1.5;}
  *{-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important;}
  .railwrap,.l-foot{display:none !important;}
  .stage{max-width:100%;padding:0;}
  .lesson{display:block !important;animation:none;}
  .l-head{padding-top:0;}
  h1.l-title{font-size:26pt;}
  .body h3{break-after:avoid;break-inside:avoid;}
  p,li{orphans:3;widows:3;}
  .figure{display:block;break-inside:avoid;}
  .figcap{border-left:none;border-top:1px solid var(--kraft);}
  .figure img{max-height:6in;width:auto;max-width:100%;margin:0 auto;}
  .check,.fx,.summary,.sort,.sim,.worksheet-card{background:#FAF6EC !important;break-inside:avoid;}
  .check details>.ans{display:block !important;border-top:1px solid var(--kraft);}
  .check summary::after{display:none;}
  .ws-scroll{overflow:visible !important;}
  table.worksheet{font-size:9.5pt;min-width:0;}
  table.worksheet thead{display:table-header-group;}
  a{color:var(--walnut);text-decoration:none;}
}
