/* Osmora Academy — Phase 5 production polish (accessibility + refinement).
   Additive only; reuses existing tokens. */

/* Skip link — visually hidden until focused (keyboard users) */
.osm-skip{position:absolute;left:-9999px;top:0;z-index:2000;background:var(--forest-ink,#1E3229);
  color:var(--cream,#F4EFE6);padding:12px 20px;border-radius:0 0 8px 0;font-family:var(--font-body);
  font-size:.85rem;text-decoration:none}
.osm-skip:focus{left:0}

/* Stronger, consistent focus-visible across interactive elements */
a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--gold-soft,#B79A5B);outline-offset:2px;border-radius:2px}

/* Ensure comfortable minimum tap targets on small screens */
@media (max-width:640px){
  .acs-trigger,.acr-save,.gl-az__btn,.kc-opt,.acr-complete__btn,.kc__retry,
  .saved-card__remove,.progsum__reset{min-height:40px}
  .gl-az__btn{min-width:38px}
}

/* Respect reduced motion everywhere (belt-and-braces) */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}

/* Footer navigation (Phase 5) */
.osm-foot__nav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 26px;margin:0 0 16px}
.osm-foot__nav a{color:var(--cream,#F4EFE6);text-decoration:none;font-size:.82rem;letter-spacing:.06em;
  opacity:.85;border-bottom:1px solid transparent;padding-bottom:2px}
.osm-foot__nav a:hover{opacity:1;border-color:var(--gold-soft,#B79A5B)}
.osm-foot__legal{margin:0;opacity:.7;font-size:.78rem;max-width:60ch;margin-left:auto;margin-right:auto}

/* "View saved" quiet link that appears once an article is saved */
.acr-save__view{display:none;font-size:.76rem;color:var(--forest);text-decoration:none;border-bottom:1px solid transparent;margin-left:2px}
.acr-save__view:hover{border-color:var(--gold-soft)}

/* Citation / Provenance (Phase E) */
.cite,.vh{margin-top:20px}
.cite__toggle,.vh__toggle{background:none;border:1px solid rgba(30,50,41,.18);border-radius:6px;
  padding:9px 16px;font-family:var(--font-body);font-size:.8rem;letter-spacing:.04em;color:var(--forest-ink,#1E3229);
  cursor:pointer;transition:all .15s ease}
.cite__toggle:hover,.vh__toggle:hover{border-color:var(--gold-soft,#B79A5B);color:var(--forest,#2C5F4F)}
.cite__panel,.vh__panel{margin-top:14px}
.cite__tabs{display:inline-flex;border:1px solid rgba(30,50,41,.14);border-radius:7px;overflow:hidden;margin-bottom:14px}
.cite__tab{background:none;border:none;padding:7px 16px;font-family:var(--font-body);font-size:.78rem;color:#6a6a6a;cursor:pointer}
.cite__tab.is-active{background:var(--forest-ink,#1E3229);color:var(--cream,#F4EFE6)}
.cite__text{background:var(--cream-2,#FAF7F2);border:1px solid rgba(30,50,41,.10);border-radius:8px;
  padding:16px 18px;font-size:.9rem;color:#3a443d;line-height:1.6;margin:0 0 12px}
.cite__copy{background:none;border:1px solid var(--forest-ink,#1E3229);border-radius:5px;padding:8px 18px;
  font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--forest-ink,#1E3229);cursor:pointer}
.cite__copy:hover{background:var(--forest-ink,#1E3229);color:var(--cream,#F4EFE6)}
.vh__list{list-style:none;margin:0;padding:0}
.vh__list li{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;padding:10px 0;border-bottom:1px solid rgba(30,50,41,.07)}
.vh__list li:last-child{border-bottom:none}
.vh__v{font-family:var(--font-display,Georgia,serif);color:var(--forest-ink,#1E3229)}
.vh__d{font-size:.78rem;color:var(--gold-soft,#B79A5B);letter-spacing:.04em}
.vh__n{font-size:.9rem;color:#6a6a6a}

/* Homepage dynamic stats + tools (Phase L) */
.home-stats{list-style:none;display:flex;flex-wrap:wrap;gap:36px;margin:22px 0 0;padding:0}
.home-stats li{display:flex;flex-direction:column;gap:2px}
.home-stats__n{font-family:var(--font-display,Georgia,serif);font-size:1.7rem;color:var(--forest-ink,#1E3229);line-height:1}
.home-stats__l{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-soft,#B79A5B)}
@media(max-width:640px){.home-stats{gap:24px}.home-stats__n{font-size:1.4rem}}

/* Research Desk (Phase M / Step 3) — editorial research cards */
.desk-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:26px}
@media(max-width:720px){.desk-grid{grid-template-columns:1fr}}
.desk-card{display:flex;flex-direction:column;background:var(--cream-2,#FAF7F2);border:1px solid rgba(30,50,41,.10);
  border-radius:12px;padding:30px 32px;text-decoration:none;color:var(--charcoal,#2a2a26);transition:border-color .18s ease,transform .18s ease}
.desk-card:hover{border-color:var(--gold-soft,#B79A5B);transform:translateY(-2px)}
.desk-card__label{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft,#B79A5B);margin:0 0 12px}
.desk-card__title{font-family:var(--font-display,Georgia,serif);font-size:1.4rem;color:var(--forest-ink,#1E3229);margin:0 0 12px;font-weight:400}
.desk-card__desc{font-size:.95rem;color:#55605a;line-height:1.6;margin:0 0 20px;flex:1}
.desk-card__cta{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--forest,#2C5F4F)}
.desk-card:hover .desk-card__cta{color:var(--forest-ink,#1E3229)}

/* ===== Article Layout patch — shared refinements (override inline per-page styles) ===== */
/* Responsive serif title: fills the wider column, ~2–3 lines for long titles, no 4-line breakup */
.article-main h1,
main#main-content .lede h1{
  font-size:clamp(2.1rem, 1.4rem + 1.9vw, 3rem);
  line-height:1.12;letter-spacing:-.01em;margin:0;max-width:20ch}
/* Original-lesson pages hard-cap .wrap to 820px, which cramps the reading column and forces
   long titles to wrap. Widen the shared measure on article pages (scoped to article body). */
body[data-academy-article] .wrap{max-width:1160px}
body[data-academy-article] .article-main{max-width:760px}
/* Tighten the header stack so the first content arrives sooner */
.lede{padding-top:26px !important;padding-bottom:6px !important}
.lede .rule{margin:18px 0 16px !important}
.lede p.intro,.lede .deck{margin-top:0}
.acr-meta{margin-top:14px !important}
/* Article controls row (Save · Reading Mode) sits directly under meta, once */
.acr-controls{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:14px 0 0}
/* Direct Answer / Key Concept — integrated, restrained (cream/white, forest accent, no heavy shadow) */
.direct-answer,.tv-establish,.key-concept{box-shadow:none !important}
.direct-answer{background:#fff;border:1px solid rgba(30,50,41,.12);border-left:3px solid var(--forest,#2C5F4F);
  border-radius:10px;margin:26px 0}
