/* Hearn Consulting — interactive resource components (lesson chips, vocab flashcard, tracker demo).
   Loaded on pages that use them; relies on each page's :root brand vars. */

/* ---- Clickable lesson chips ---- */
.hc-chips{margin:0 0 1rem}
.hc-chiprow{display:flex;flex-wrap:wrap;gap:0.35rem;margin:0 0 0.7rem}
.hc-chip{font-family:var(--body,'Inter',sans-serif);font-size:0.78rem;font-weight:600;padding:0.3rem 0.6rem;border-radius:6px;border:1px solid var(--line,#DDE3EC);background:var(--paper,#fff);color:var(--slate,#6B7689);cursor:pointer;transition:border-color .15s,color .15s,background .15s}
.hc-chip:hover{border-color:var(--orange,#F47B2A);color:var(--navy,#0E2356)}
.hc-chip.on{background:var(--orange,#F47B2A);border-color:var(--orange,#F47B2A);color:#fff;font-weight:700}
.hc-chip.free{border-color:#9FD3B4;color:#1F7244}
.hc-chip.free:hover{border-color:#1F7244;color:#1F7244}
.hc-chip.free.on{background:#1F7244;border-color:#1F7244;color:#fff}
.hc-chip:focus-visible{outline:3px solid var(--navy,#0E2356);outline-offset:2px}
.hc-hint{font-size:0.72rem;color:var(--slate,#6B7689);margin:0 0 0.5rem}
.hc-detail{background:var(--surface,#F4F6FA);border:1px solid var(--line,#DDE3EC);border-radius:6px;padding:0.85rem 1rem;min-height:5.2em}
.hc-lt{font-weight:600;font-size:0.98rem;color:var(--navy,#0E2356);margin-bottom:0.25rem}
.hc-ld{font-size:0.9rem;color:var(--slate,#6B7689);line-height:1.5}
.hc-free{display:none;margin-top:0.5rem;font-size:0.68rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;color:#1F7244;background:#E4F3E9;padding:0.15rem 0.55rem;border-radius:999px}
.hc-free.show{display:inline-block}

/* ---- Vocab flashcard ---- */
.hc-flash-label{display:block;font-size:0.72rem;font-weight:700;letter-spacing:0.13em;text-transform:uppercase;color:var(--orange,#F47B2A);margin-bottom:0.7rem}
.hc-fcwrap{perspective:1100px;max-width:430px}
.hc-fcard{position:relative;width:100%;height:176px;transform-style:preserve-3d;transition:transform .62s cubic-bezier(.4,.1,.25,1)}
.hc-fcard.flip{transform:rotateY(180deg)}
.hc-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid var(--line,#DDE3EC);border-radius:12px;padding:1.5rem 1.6rem;display:flex;flex-direction:column;justify-content:center;background:var(--paper,#fff)}
.hc-back{transform:rotateY(180deg);background:var(--navy,#0E2356);border-color:var(--navy,#0E2356)}
.hc-word{font-family:var(--display,'Space Grotesk',sans-serif);font-weight:700;font-size:1.7rem;color:var(--navy,#0E2356);letter-spacing:-0.01em}
.hc-pos{font-size:0.9rem;color:var(--slate,#6B7689);margin-top:0.2rem}
.hc-flip-note{margin-top:auto;font-size:0.72rem;color:var(--slate,#6B7689)}
.hc-def{font-size:1.02rem;color:#fff;line-height:1.45;font-weight:500}
.hc-ex{font-size:0.9rem;color:#9FB3D6;line-height:1.5;margin-top:0.6rem;font-style:italic}

@media (prefers-reduced-motion: reduce){.hc-fcard{transition:none}}

/* ---- Tracker / Learning Log animations ---- */
.hc-tkwrap{position:relative}
.hc-tk-label{font-size:0.72rem;font-weight:500;color:var(--slate,#6B7689);margin-bottom:0.85rem}
.hc-tk{border:1px solid var(--line,#DDE3EC);border-radius:6px;overflow:hidden;background:var(--paper,#fff);font-size:13.5px;color:var(--navy,#0E2356)}
.hc-tk-head,.hc-tk-row{display:grid;grid-template-columns:var(--cols)}
.hc-tk-head{background:var(--navy,#0E2356);color:#fff;font-weight:500}
.hc-tk-row{border-top:1px solid var(--line,#DDE3EC)}
.hc-tk-active{background:#FFFBF7}
.hc-tk-c{padding:0.6rem 0.85rem;border-right:1px solid rgba(221,227,236,0.5);min-height:2.55em;display:flex;align-items:center;line-height:1.35}
.hc-tk-c:last-child{border-right:none}
.hc-tk-pill{display:inline-block;font-size:12px;font-weight:500;padding:0.14rem 0.62rem;border-radius:999px;white-space:nowrap}
.hc-tk-dd{position:absolute;display:none;background:#fff;border:1px solid var(--line,#DDE3EC);border-radius:8px;padding:0.3rem;z-index:8;min-width:118px}
.hc-tk-ddi{padding:0.35rem 0.5rem;border-radius:6px}
.hc-tk-cur{position:absolute;left:30px;top:55px;pointer-events:none;z-index:9;transition:left .55s cubic-bezier(.5,.05,.3,1),top .55s cubic-bezier(.5,.05,.3,1),transform .15s ease}
.hc-cap{display:inline-block;width:1.5px;height:0.95em;background:var(--navy,#0E2356);vertical-align:-1px;margin-left:1px;animation:hc-blink .8s step-end infinite}
@keyframes hc-blink{50%{opacity:0}}

/* ---- Diagnostic question ---- */
.hc-dg{border:1px solid var(--line,#DDE3EC);border-radius:10px;background:var(--paper,#fff);padding:1.25rem 1.4rem;max-width:480px}
.hc-dg-top{display:flex;justify-content:space-between;gap:0.5rem;font-size:0.72rem;color:var(--slate,#6B7689);font-weight:600;letter-spacing:0.03em;text-transform:uppercase;margin-bottom:0.9rem}
.hc-dg-timer{color:var(--navy,#0E2356);white-space:nowrap}
.hc-dg-q{font-family:var(--display,'Space Grotesk',sans-serif);font-size:1.05rem;font-weight:500;color:var(--navy,#0E2356);margin-bottom:0.9rem;line-height:1.35}
.hc-dg-opts{display:flex;flex-direction:column;gap:0.5rem}
.hc-dg-opt{display:flex;gap:0.7rem;align-items:flex-start;padding:0.65rem 0.85rem;border:1.5px solid var(--line,#DDE3EC);border-radius:8px;font-size:0.92rem;color:var(--navy,#0E2356);transition:border-color .18s,background .18s}
.hc-dg-k{font-weight:700;color:var(--slate,#6B7689);flex:0 0 auto}
.hc-dg-opt.hover{border-color:var(--orange,#F47B2A)}
.hc-dg-opt.sel{border-color:#1F7244;background:#E4F3E9}
.hc-dg-opt.sel .hc-dg-k{color:#1F7244}

/* ---- Score report ---- */
.hc-rp{border:1px solid var(--line,#DDE3EC);border-radius:10px;background:var(--paper,#fff);padding:1.3rem 1.5rem;max-width:480px}
.hc-rp-label{font-size:0.72rem;font-weight:700;letter-spacing:0.13em;text-transform:uppercase;color:var(--orange,#F47B2A);margin-bottom:1rem}
.hc-rp-top{display:flex;align-items:center;gap:1.3rem;margin-bottom:1.2rem}
.hc-rp-donut{width:94px;height:94px;border-radius:50%;background:var(--line,#DDE3EC);display:flex;align-items:center;justify-content:center;flex:0 0 auto;transition:background 1.1s ease}
.hc-rp-donut-c{width:68px;height:68px;border-radius:50%;background:var(--paper,#fff);display:flex;flex-direction:column;align-items:center;justify-content:center}
.hc-rp-donut-c b{font-family:var(--display,'Space Grotesk',sans-serif);font-size:1.2rem;color:var(--navy,#0E2356);line-height:1}
.hc-rp-donut-c span{font-size:0.64rem;color:var(--slate,#6B7689)}
.hc-rp-est{font-size:0.8rem;color:var(--slate,#6B7689)}
.hc-rp-num{font-family:var(--display,'Space Grotesk',sans-serif);font-size:2rem;font-weight:700;color:var(--navy,#0E2356);line-height:1.1}
.hc-rp-num span{font-size:1.05rem;color:var(--slate,#6B7689);font-weight:500}
.hc-rp-note{font-size:0.72rem;color:var(--slate,#6B7689);margin-top:0.2rem}
.hc-rp-bars{display:flex;flex-direction:column;gap:0.6rem;margin-bottom:1rem}
.hc-rp-bar{display:grid;grid-template-columns:8.5rem 1fr 2.6rem;align-items:center;gap:0.6rem;font-size:0.82rem;color:var(--navy,#0E2356)}
.hc-rp-bl{color:var(--slate,#6B7689)}
.hc-rp-bt{height:8px;background:#EDEEF1;border-radius:999px;overflow:hidden}
.hc-rp-bf{display:block;height:100%;background:var(--navy,#0E2356);border-radius:999px;width:0;transition:width 1.1s cubic-bezier(.3,.1,.2,1)}
.hc-rp-bv{text-align:right;font-weight:600}
.hc-rp-focus{font-size:0.85rem;font-weight:500;color:#9c4a13;background:#FAE6D8;border-radius:8px;padding:0.6rem 0.85rem}
@media (max-width:560px){.hc-rp-bar{grid-template-columns:7rem 1fr 2.4rem}}

/* ---- Lesson accordion (curriculum detail pages) ---- */
.hc-lessons{display:grid;gap:0.5rem;margin:0.5rem 0 0}
.hc-les{background:var(--surface,#F4F6FA);border:1px solid var(--line,#DDE3EC);border-left:3px solid var(--line,#DDE3EC)}
.hc-les.free{border-left-color:#1F7244}
.hc-les-btn{width:100%;display:flex;align-items:flex-start;gap:1rem;padding:0.9rem 1.1rem;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit}
.hc-les-btn:hover .hc-les-title{color:var(--orange,#F47B2A)}
.hc-les-btn:focus-visible{outline:3px solid var(--navy,#0E2356);outline-offset:-3px}
.hc-les-num{flex-shrink:0;font-family:var(--display,'Space Grotesk',sans-serif);font-weight:700;font-size:0.85rem;color:var(--slate,#6B7689);min-width:2.1rem;padding-top:0.15rem}
.hc-les-main{flex:1}
.hc-les-title{display:block;font-weight:600;font-size:1rem;color:var(--navy,#0E2356);line-height:1.4;transition:color .15s}
.hc-les-status{display:inline-block;margin-top:0.4rem;font-size:0.7rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;padding:0.18rem 0.6rem;border-radius:999px}
.hc-les-status.free{color:#1F7244;background:#E4F3E9}
.hc-les-status.full{color:#5F5E5A;background:#EDEEF1}
.hc-les-chev{flex-shrink:0;color:var(--slate,#6B7689);display:flex;align-items:center;padding-top:0.2rem;transition:transform .22s ease}
.hc-les-panel{max-height:0;overflow:hidden;transition:max-height .25s ease}
.hc-les-desc{padding:0 1.1rem 1rem 4.2rem;font-size:0.92rem;color:var(--slate,#6B7689);line-height:1.55}
@media (prefers-reduced-motion: reduce){.hc-les-panel,.hc-les-chev{transition:none}}

/* ---- Reading framework (annotated passage animation) ---- */
.hc-rf{max-width:640px}
.hc-rf-eyebrow{display:block;font-size:0.74rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--orange,#F47B2A);margin-bottom:0.7rem}
.hc-rf-intro{font-size:1.05rem;line-height:1.6;color:var(--navy,#0E2356);margin:0 0 1.3rem}
.hc-rf-intro b{font-weight:600}
.hc-rf-card{background:var(--paper,#fff);border:1px solid var(--line,#DDE3EC);border-radius:10px;padding:1.3rem 1.45rem}
.hc-rf-passage{font-size:1.04rem;line-height:1.9;color:var(--navy,#0E2356);margin:0}
.hc-rf-cite{font-size:0.82rem;color:var(--slate,#6B7689);margin:0.85rem 0 0;font-style:italic}
.hc-rf-mark{background-repeat:no-repeat;background-position:left center;background-size:0% 86%;border-bottom:2px solid transparent;padding:0.02em 0.08em;transition:background-size .55s ease,border-color .55s ease}
.hc-rf-mark.mi{background-image:linear-gradient(#FCE7D6,#FCE7D6)}
.hc-rf-mark.su{background-image:linear-gradient(#E1F0FB,#E1F0FB)}
.hc-rf-mark.mi.on{background-size:100% 86%;border-bottom-color:var(--orange,#F47B2A)}
.hc-rf-mark.su.on{background-size:100% 86%;border-bottom-color:var(--cyan,#3FA9F5)}
.hc-rf-mark.st.on{border-bottom-color:var(--navy,#0E2356)}
.hc-rf-answers{margin-top:1.1rem}
.hc-rf-ans{display:grid;grid-template-columns:128px 1fr;gap:0.9rem;align-items:start;padding:0.65rem 0;border-top:1px solid #EEF1F6}
.hc-rf-ans:first-child{border-top:none}
.hc-rf-chip{font-size:0.7rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;padding:0.28rem 0.6rem;border-radius:999px;justify-self:start;display:inline-flex;align-items:center;gap:0.35rem}
.hc-rf-chip::before{content:'';width:10px;height:10px;border-radius:2px;display:inline-block}
.hc-rf-chip.mi{color:#C4500B;background:#FCE7D6}.hc-rf-chip.mi::before{background:#F47B2A}
.hc-rf-chip.su{color:#155b8a;background:#E1F0FB}.hc-rf-chip.su::before{background:#3FA9F5}
.hc-rf-chip.st{color:#fff;background:#0E2356}.hc-rf-chip.st::before{background:#fff}
.hc-rf-atxt{font-size:0.98rem;line-height:1.55;color:var(--navy,#0E2356);min-height:1.5em}
@media (max-width:560px){.hc-rf-ans{grid-template-columns:1fr;gap:0.3rem}}

/* ---- Essay revision (specificity) animation ---- */
.hc-rv-row{display:grid;grid-template-columns:104px 1fr;gap:0.9rem;align-items:start;padding:0.8rem 0}
.hc-rv-chip{font-size:0.7rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;padding:0.28rem 0.6rem;border-radius:999px;justify-self:start;display:inline-flex;align-items:center;gap:0.35rem}
.hc-rv-chip::before{content:'';width:10px;height:10px;border-radius:2px;display:inline-block}
.hc-rv-chip.vg{color:#5F5E5A;background:#EDEEF1}.hc-rv-chip.vg::before{background:#9aa3b2}
.hc-rv-chip.sp{color:#C4500B;background:#FCE7D6}.hc-rv-chip.sp::before{background:#F47B2A}
.hc-rv-txt{font-size:1.05rem;line-height:1.7;color:var(--navy,#0E2356)}
.hc-rv-vague{color:#9aa3b2;text-decoration:line-through;text-decoration-color:#C7CCD6}
.hc-rv-sp{background:#FCE7D6;border-bottom:2px solid var(--orange,#F47B2A);padding:0.03em 0.1em}
.hc-rv-arrow{display:flex;justify-content:center;align-items:center;gap:0.4rem;color:var(--slate,#6B7689);font-size:0.74rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;padding:0.2rem 0}
.hc-rv-rule{height:1px;width:28px;background:var(--line,#DDE3EC);display:inline-block}
.hc-rv-note{font-size:0.84rem;color:var(--slate,#6B7689);margin:1rem 0 0;max-width:640px}
@media (max-width:560px){.hc-rv-row{grid-template-columns:1fr;gap:0.3rem}}

/* ---- Personal statement spine ---- */
.hc-sp-wrap{position:relative;padding-left:2.6rem}
.hc-sp-line{position:absolute;left:0.95rem;top:0.6rem;bottom:0.6rem;width:2px;background:var(--line,#DDE3EC)}
.hc-sp-node{position:relative;margin:0 0 1.05rem;opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s ease}
.hc-sp-node.on{opacity:1;transform:none}
.hc-sp-dot{position:absolute;left:-2.6rem;top:0.05rem;width:2rem;height:2rem;border-radius:50%;background:var(--paper,#fff);border:2px solid var(--line,#DDE3EC);display:flex;align-items:center;justify-content:center;font-family:var(--display,'Space Grotesk',sans-serif);font-weight:700;font-size:0.85rem;color:var(--slate,#6B7689);transition:border-color .4s,color .4s}
.hc-sp-node.on .hc-sp-dot{border-color:var(--orange,#F47B2A);color:var(--orange,#F47B2A)}
.hc-sp-h{font-family:var(--display,'Space Grotesk',sans-serif);font-weight:600;font-size:1.05rem;color:var(--navy,#0E2356);margin:0 0 0.2rem}
.hc-sp-d{font-size:0.95rem;color:var(--slate,#6B7689);line-height:1.55;margin:0}
@media (prefers-reduced-motion: reduce){.hc-sp-node{transition:none}}
