/* ki_public.css — Session 58 page-group sheet. Loaded after ki_app.css on every non-chalkboard page; scope every rule. */

/* ═══════════════════════════════════════════════════════════════════════════
   THE FOUR INFORMATION PAGES — /how-it-works ("Our approach"), /pricing
   ("Fees & enrolment"), /about, /faq ("Parent FAQ"). Session 58.

   Every rule is scoped under `.kpub`, the wrapper only those four templates
   render, so nothing here can reach another page. No colour is declared that
   ki.css does not already define as a token: this sheet arranges the system's
   components, it does not extend its palette.
   ═══════════════════════════════════════════════════════════════════════════ */

/* the fact strip / intro band that sits directly under the navy page header */
.kpub .kpub-intro { padding-top: 36px; padding-bottom: 44px; }
.kpub .kpub-facts { margin: 0; }
.kpub .kpub-facts dd { font-size: 17px; }
.kpub .kpub-facts__cap { margin: 0 0 10px; color: var(--ki-ink-3); letter-spacing: .08em; text-transform: uppercase; font-size: 13px; }
.kpub .kpub-facts__note { margin: 12px 0 0; }
.kpub .kpub-intro__p { margin: 22px 0 0; max-width: 720px; }

/* the TOC heading line */
.kpub .kpub-toc__h { margin: 0 0 6px; }
.kpub .ki-toc a { min-height: 44px; display: flex; align-items: center; padding: 6px 0; }

/* small serif sub-heading between blocks inside one section */
.kpub .kpub-subhead { margin: 44px 0 14px; }
.kpub .kpub-h2-gap { margin: 40px 0 14px; }

/* columns: text inside newspaper columns */
.kpub .ki-cols .ki-h3 { margin: 0 0 8px; }
.kpub .ki-cols .ki-small { margin: 0; color: var(--ki-ink-2); font-size: 15.5px; }
.kpub .kpub-steps .ki-col-num { font-size: 22px; }
.kpub ol.ki-cols { list-style: none; margin: 0; padding: 0; }

/* the numbered approach list: numeral set before the key */
.kpub .kpub-numbered > li { grid-template-columns: 250px minmax(0, 1fr); }
.kpub .kpub-n {
  display: inline-block; min-width: 26px; margin-right: 6px;
  font: 700 16px/1.45 var(--ki-serif); color: var(--ki-ochre-ink);
}
.kpub .kpub-numbered .ki-ruled__k { display: flex; }
@media (max-width: 700px) { .kpub .kpub-numbered > li { grid-template-columns: 1fr; } }

/* the hint-ladder panel beside it */
.kpub .kpub-approach { grid-template-columns: minmax(0, 1fr) 360px; }
.kpub .kpub-ladder__h { margin: 6px 0 14px; }
.kpub .kpub-ladder .ki-table td { padding-right: 8px; }
.kpub .kpub-ladder__k { white-space: nowrap; font-weight: 700; color: var(--ki-blue); width: 1%; }
.kpub .kpub-ladder .ki-small { display: inline-block; margin-top: 2px; }
@media (max-width: 980px) { .kpub .kpub-approach { grid-template-columns: 1fr; } }

/* curriculum: skills table and the narrow ruled list beside it */
.kpub .kpub-skills td:first-child { width: 34%; }
.kpub .kpub-ruled-narrow > li { grid-template-columns: 1fr; gap: 4px; }
.kpub .kpub-limit { margin-top: 32px; }
@media (max-width: 600px) {
  .kpub .kpub-skills, .kpub .kpub-skills tbody, .kpub .kpub-skills tr, .kpub .kpub-skills td { display: block; width: auto; }
  .kpub .kpub-skills thead { display: none; }
  .kpub .kpub-skills tr { border-bottom: 1px solid var(--ki-rule); padding: 12px 0; }
  .kpub .kpub-skills td { border: 0; padding: 2px 0; }
  .kpub .kpub-skills { border-top: 2px solid var(--ki-ink); }
}

/* quality: the four checks in two ruled columns */
.kpub .kpub-check__h { font: 700 17px/1.4 var(--ki-serif); margin: 0 0 8px; }
.kpub .kpub-checks .ki-body { margin: 0 0 26px; color: var(--ki-ink-2); }
.kpub .kpub-checks .ki-body:last-child { margin-bottom: 0; }
.kpub .kpub-na { margin-top: 36px; }

/* closing call to action on navy */
.kpub .kpub-cta__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 40px; }
.kpub .kpub-cta .ki-lead { margin-top: 10px; }
.kpub .kpub-cta .ki-btn-row { flex: none; }
@media (max-width: 600px) {
  .kpub .kpub-cta .ki-btn-row, .kpub .kpub-cta .ki-btn { width: 100%; }
}

/* pricing: the fee panel */
.kpub .kpub-fee__amt { margin: 10px 0 2px; color: var(--ki-ink); }
.kpub .kpub-fee__big { font: 700 52px/1 var(--ki-serif); color: var(--ki-ink); }
.kpub .kpub-fee__per { font: 600 18px/1 var(--ki-sans); color: var(--ki-ink-2); }
.kpub .kpub-fee__meta { margin: 6px 0 0; }
.kpub .kpub-fee__legal { margin: 16px 0 16px; padding-top: 14px; border-top: 1px solid var(--ki-rule); }
.kpub .kpub-fee__nocard { margin: 10px 0 0; text-align: center; }
.kpub .kpub-fee__ticks { margin-top: 16px; border-top: 1px solid var(--ki-rule); }
.kpub .kpub-donot { margin-top: 28px; }
.kpub .kpub-enrol__cta { margin-top: 32px; }
.kpub .kpub-morefaq { margin: 16px 0 0; }
.kpub .kpub-contact .ki-h4 { margin: 0 0 10px; }
.kpub .kpub-contact__p { margin: 12px 0 0; }
.kpub .kpub-since { margin: 14px 0 0; }
.kpub .kpub-na-sec { padding: 36px 0; }
.kpub .ki-note > :last-child { margin-bottom: 0; }

/* about */
.kpub .kpub-colh { margin: 8px 0 14px; }
.kpub .kpub-about-cols .ki-note { margin-top: 8px; }

/* faq */
.kpub .kpub-faqbody { padding-top: 44px; }
.kpub .kpub-faqempty { margin-bottom: 40px; }
.kpub .kpub-faqempty .ki-body { margin: 0 0 8px; color: var(--ki-ink-2); }
.kpub .kpub-faqempty .ki-body:last-child { margin: 0; }
.kpub .kpub-faq-pre { white-space: pre-wrap; }
.kpub .kpub-faqsrc { margin: 12px 0 0; }
.kpub .kpub-ask { margin-top: 48px; }
.kpub .kpub-ask .ki-h2 { margin: 6px 0 10px; }
.kpub .kpub-ask .ki-body { margin: 0 0 16px; color: var(--ki-ink-2); }
.kpub .kpub-ask__btns { margin-top: 20px; }

/* a link inside the navy page header's lead */
.kpub .ki-pagehead a.kpub-onnavy-link { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.kpub .ki-pagehead a.kpub-onnavy-link:hover { text-decoration-thickness: 2px; }
.kpub .ki-pagehead a:focus-visible { outline: 3px solid #E9C46A; outline-offset: 2px; }

/* summaries are primary controls: keep the tap row at 44px+ */
.kpub .ki-faq summary { min-height: 44px; }

/* ⚑ ki_app.css paints `body.ki.theme-parent main h1/h2…` in ink (0,2,2) for the
   signed-in portal, and a logged-out visitor is also `theme-parent` — so the
   white headings on the navy page header and the navy CTA rendered ink on navy.
   Matched and beaten here at (0,3,2), scoped to the four pages. */
body.ki .kpub .ki-pagehead h1,
body.ki .kpub .ki-section--navy h2 { color: #fff; }
body.ki .kpub .kpub-facts__cap { font-family: var(--ki-sans); font-weight: 700; }
@media (max-width: 600px) { .kpub .kpub-skills td:first-child { width: auto; } }

/* ═══════════════════════════════════════════════════════════════════════════
   SESSION 59 — THE PUBLIC GROUND IS THE LANDING'S, EXACTLY.
   ⚑ ki_app.css:24 `body.ki.theme-parent:not(:has(.lnd))` (0,3,1) paints the body
   var(--ki-ivory) — on the public tier that is #1F2536, the alternating band,
   not the #1A1F2E ground the landing stands on — and it beats ki.css section
   13's `body.ki-t-public:not(:has(.lnd--dark))` (0,2,1). Measured: every public
   page except / computed rgb(31,37,54). A signed-out visitor is `theme-parent`,
   so all eleven public pages inherited it. Matched and beaten here at (0,4,1),
   scoped to the public tier only; the same rule shifts the PORTAL ground to
   #0D3256 and belongs in ki_app.css (reported, not edited — not this sheet's).
   ═══════════════════════════════════════════════════════════════════════════ */
body.ki.ki-t-public.theme-parent:not(:has(.lnd)) {
  --k-bg: var(--ki-ground);
  --bg: var(--ki-ground);
  background: var(--ki-ground);
}

/* ═══════════════════════════════════════════════════════════════════════════
   SESSION 63 (W3) — THE TRUST LAYER.
   `.ktrust-badges` is the _trust_badges.html partial: UNSCOPED on purpose, because
   W1 includes it on /privacy, /terms and /legal/* as well as on
   /about-safety-and-privacy. Text-first chips, token colours only (they follow
   whichever tier they sit on), 44px tap height. No icon, no seal shape: the
   Code is an exposure draft and nothing here may read as a certification mark.
   `.kpub--safety` scopes the rest to /about-safety-and-privacy.
   ═══════════════════════════════════════════════════════════════════════════ */
.ktrust-badges { list-style: none; margin: 0 0 24px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ktrust-badges li { margin: 0; padding: 0; }
.ktrust-badges li::before { content: none; }
body.ki a.ktrust-badge {
  display: inline-flex; align-items: center; min-height: 44px; padding: 6px 14px;
  border: 1px solid var(--ki-rule-2); border-radius: var(--ki-r);
  background: var(--ki-blue-50); color: var(--ki-ink);
  font: 600 15px/1.3 var(--ki-sans); text-decoration: none;
}
body.ki a.ktrust-badge:hover { border-color: var(--ki-blue); color: var(--ki-ink); text-decoration: underline; text-underline-offset: 2px; }
body.ki a.ktrust-badge:focus-visible { outline: 3px solid var(--ki-blue); outline-offset: 2px; }

.kpub--safety .ktrust-draft { margin: 0 0 28px; max-width: 860px; }
.kpub--safety .ktrust-tablewrap { overflow-x: auto; }
.kpub--safety .ktrust-table { margin: 0 0 40px; }
.kpub--safety .ktrust-cap { caption-side: top; text-align: left; margin: 0 0 10px; color: var(--ki-ink-3); letter-spacing: .08em; text-transform: uppercase; font-size: 13px; font-family: var(--ki-sans); font-weight: 700; }
.kpub--safety .ktrust-table td:first-child { width: 28%; font-weight: 600; }
.kpub--safety .ktrust-table td:nth-child(2) { width: 14%; color: var(--ki-ink-2); }
.kpub--safety .ktrust-share td:nth-child(2) { white-space: normal; width: 24%; font-weight: 400; color: var(--ki-ink); }
.kpub--safety .ktrust-share td:first-child { width: 14%; }
.kpub--safety .ktrust-not { list-style: none; margin: 0; padding: 0; }
.kpub--safety .ktrust-not li { padding: 9px 0 9px 30px; position: relative; border-bottom: 1px solid var(--ki-rule); font: 400 16.5px/1.55 var(--ki-sans); color: var(--ki-ink); }
.kpub--safety .ktrust-not li:last-child { border-bottom: 0; }
.kpub--safety .ktrust-not li::before { content: "\2715"; position: absolute; left: 4px; top: 9px; color: var(--ki-ink-3); font-weight: 700; }
.kpub--safety .ktrust-collect-note { margin: 24px 0 0; max-width: 760px; color: var(--ki-ink-2); }
.kpub--safety .ki-cols .ki-h3 { margin: 0 0 10px; }
@media (max-width: 760px) {
  .kpub--safety .ktrust-table, .kpub--safety .ktrust-table tbody,
  .kpub--safety .ktrust-table tr, .kpub--safety .ktrust-table td { display: block; width: auto !important; }
  .kpub--safety .ktrust-table thead { display: none; }
  .kpub--safety .ktrust-table caption { display: block; width: auto; }
  .kpub--safety .ktrust-table tr { border-bottom: 1px solid var(--ki-rule); padding: 12px 0; }
  .kpub--safety .ktrust-table td { border: 0; padding: 2px 0; white-space: normal; }
  .kpub--safety .ktrust-table td:nth-child(2) { font-size: 14px; }
}

/* the child home's privacy links (templates/practice_home.html) */
body.ki .kd-privacy { display: flex; flex-wrap: wrap; gap: 4px 20px; margin: 18px 0 0; padding: 0; list-style: none; }
body.ki .kd-privacy a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ki-blue); font: 600 15px/1.3 var(--ki-sans); text-decoration: underline; text-underline-offset: 2px; }
body.ki .kd-privacy a:hover { color: var(--ki-blue-dk); }

/* Session 63 — legal document lists (the rebuilt /privacy has long bulleted commitments). */
body.ki .ka-legal .legal-body li + li { margin-top: 8px; }
