/* ============================================================
   guides.css — signature styling for the SEO guide pages
   (booking / accounting / checklist / become-an-instructor)

   Purpose: these four pages were built from the shared
   compliance-* pillar kit and ended up visually identical. This
   sheet gives each guide a content-specific "signature device"
   while keeping the copilotBC brand DNA — Fraunces display,
   blue-600 primary, editorial whitespace, hairline structure,
   no decorative gradients / emoji / stock icons.

   Only the guide pages link this file; compliance.html and
   security.html keep pages.css untouched.
   ============================================================ */

/* ── Section rhythm ─────────────────────────────────────────
   Guides don't alternate grey/white slabs. They breathe on
   white and use a hairline rule + a small kicker label to mark
   a new movement — quieter, more editorial, less "template". */
.guide-section {
  padding-block: var(--space-16);
}
.guide-section--tint {
  background: var(--color-primary-tint);
}
.guide-section--ink {
  background: var(--marketing-gradient-deep);
  color: var(--marketing-text-on-deep);
}
.guide-kicker {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--color-primary);
}
.guide-kicker::before {
  content: "";
  width: 2rem;
  height: 1px;
  background: currentColor;
  opacity: .5;
}
.guide-section--ink .guide-kicker { color: var(--color-neutral-0); }
.guide-h2 {
  font-family: var(--font-display);
  font-weight: var(--weight-medium);
  font-variation-settings: "opsz" 72;
  font-size: clamp(1.9rem, 3.4vw, 2.9rem);
  line-height: 1.05;
  letter-spacing: var(--tracking-tight);
  text-wrap: balance;
  margin-top: var(--space-4);
  max-width: 22ch;
}
.guide-lead {
  margin-top: var(--space-5);
  max-width: 60ch;
  color: var(--color-text-secondary);
  font-size: var(--text-lg);
  line-height: var(--leading-relaxed);
  text-wrap: pretty;
}
.guide-section--ink .guide-lead { color: var(--marketing-text-on-deep-muted); }

/* ── Asymmetric split hero ──────────────────────────────────
   Copy left, signature visual right. Breaks the centered
   eyebrow→headline→lead→badges hero every page shared. */
.guide-hero {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(var(--space-8), 5vw, var(--space-16));
  align-items: center;
  padding-block: clamp(var(--space-12), 8vw, var(--space-20));
}
.guide-hero__h1 {
  font-family: var(--font-display);
  font-weight: var(--weight-medium);
  font-variation-settings: "opsz" 144;
  font-size: clamp(2.6rem, 5.2vw, 4.1rem);
  line-height: 0.98;
  letter-spacing: var(--tracking-tight);
  text-wrap: balance;
  margin-top: var(--space-4);
}
.guide-hero__h1 em {
  font-style: italic;
  color: var(--color-primary);
}
.guide-hero__lead {
  margin-top: var(--space-5);
  max-width: 46ch;
  color: var(--color-text-secondary);
  font-size: var(--text-lg);
  line-height: var(--leading-relaxed);
  text-wrap: pretty;
}
.guide-hero__cta {
  margin-top: var(--space-7);
  display: flex;
  gap: var(--space-3);
  flex-wrap: wrap;
}

/* ── Signature device: availability week-grid ───────────────
   A schematic of the app's booking view — not a real calendar,
   a portrait of one. This is the page's "worth screenshotting"
   detail (huashu: one thing at 120%). */
.avail {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg, 16px);
  background: var(--color-neutral-0);
  box-shadow: 0 24px 60px -32px rgba(10, 42, 102, 0.28);
  padding: var(--space-5);
  overflow: hidden;
}
.avail__top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: var(--space-4);
}
.avail__title {
  font-family: var(--font-display);
  font-weight: var(--weight-semibold);
  font-variation-settings: "opsz" 36;
  font-size: var(--text-lg);
  color: var(--color-text-primary);
}
.avail__legend {
  display: inline-flex;
  gap: var(--space-3);
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
}
.avail__legend b {
  font-weight: var(--weight-medium);
  color: var(--color-text-secondary);
}
.avail__dot {
  display: inline-block;
  width: .55rem; height: .55rem;
  border-radius: 3px;
  margin-right: .3rem;
  vertical-align: middle;
}
.avail__dot--booked { background: var(--color-primary); }
.avail__dot--pick   { background: var(--color-primary-tint); border: 1px solid var(--color-primary); }

.avail__grid {
  display: grid;
  grid-template-columns: 2.2rem repeat(6, 1fr);
  grid-auto-rows: 2.5rem;
  gap: 4px;
}
.avail__col {
  text-align: center;
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  color: var(--color-text-tertiary);
  letter-spacing: .04em;
  align-self: center;
}
.avail__time {
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
  align-self: center;
  font-variant-numeric: tabular-nums;
}
.avail__cell {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm, 7px);
  background: var(--color-neutral-0);
}
.avail__cell--booked {
  background: var(--color-primary);
  border-color: var(--color-primary);
  position: relative;
}
.avail__cell--booked::after {
  content: attr(data-who);
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  padding-inline: .45rem;
  font-size: 10px;
  font-weight: var(--weight-medium);
  color: var(--color-neutral-0);
  letter-spacing: .01em;
  overflow: hidden;
  white-space: nowrap;
}
.avail__cell--buffer {
  background: repeating-linear-gradient(
    -45deg,
    var(--color-neutral-100) 0 5px,
    transparent 5px 10px
  );
  border-style: dashed;
}
.avail__cell--pick {
  background: var(--color-primary-tint);
  border: 1.5px solid var(--color-primary);
  position: relative;
}
.avail__cell--pick::after {
  content: attr(data-who);
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  padding-inline: .45rem;
  font-size: 10px;
  font-weight: var(--weight-semibold);
  color: var(--color-primary);
  white-space: nowrap;
}
.avail__note {
  margin-top: var(--space-4);
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
  text-align: center;
}

/* ── Booking modes: a hands-on → hands-off spectrum ─────────
   Three columns under one axis label, not a vertical numbered
   flow. The numeral is Fraunces, oversized, low-contrast. */
.modes {
  margin-top: var(--space-8);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
}
.mode {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg, 16px);
  padding: var(--space-6);
  background: var(--color-neutral-0);
  position: relative;
  transition: border-color .18s ease, transform .18s ease;
}
.mode:hover { border-color: var(--color-primary); transform: translateY(-2px); }
.mode__num {
  font-family: var(--font-display);
  font-variation-settings: "opsz" 96;
  font-weight: var(--weight-semibold);
  font-size: 2.4rem;
  line-height: 1;
  color: var(--color-primary-tint);
  -webkit-text-stroke: 1px var(--color-primary);
}
.mode__name {
  margin-top: var(--space-3);
  font-family: var(--font-display);
  font-weight: var(--weight-semibold);
  font-variation-settings: "opsz" 36;
  font-size: var(--text-xl);
}
.mode__body {
  margin-top: var(--space-2);
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
}
.modes__axis {
  margin-top: var(--space-5);
  display: flex;
  justify-content: space-between;
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
  letter-spacing: .04em;
}

/* ── Rules: a dense editorial spec list ─────────────────────
   Deliberately tight and typographic to contrast the airy
   cards above — a change of texture, not another card grid. */
.spec {
  margin-top: var(--space-8);
  border-top: 1px solid var(--color-border);
}
.spec__row {
  display: grid;
  grid-template-columns: 15rem 1fr;
  gap: var(--space-6);
  padding-block: var(--space-5);
  border-bottom: 1px solid var(--color-border);
  align-items: baseline;
}
.spec__name {
  font-family: var(--font-display);
  font-weight: var(--weight-semibold);
  font-variation-settings: "opsz" 36;
  font-size: var(--text-lg);
  color: var(--color-text-primary);
}
.spec__desc {
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
  text-wrap: pretty;
}

/* ── "After the booking" — quiet feature rows on ink ────────
   Rendered on the deep field so this movement reads as the
   page's tonal low point before the light FAQ + CTA. */
.afterlist {
  margin-top: var(--space-8);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-8) var(--space-10);
}
.afteritem__name {
  font-family: var(--font-display);
  font-weight: var(--weight-semibold);
  font-variation-settings: "opsz" 36;
  font-size: var(--text-lg);
  color: var(--color-neutral-0);
}
.afteritem__body {
  margin-top: var(--space-2);
  color: var(--marketing-text-on-deep-muted);
  line-height: var(--leading-relaxed);
  font-size: var(--text-sm);
  text-wrap: pretty;
}

/* ── FAQ (shared, kept simple on white) ─────────────────────  */
.guide-faq { border-top: 1px solid var(--color-border); margin-top: var(--space-8); }
.guide-faq__row {
  padding-block: var(--space-6);
  border-bottom: 1px solid var(--color-border);
}
.guide-faq__q {
  font-family: var(--font-display);
  font-weight: var(--weight-semibold);
  font-variation-settings: "opsz" 36;
  font-size: var(--text-lg);
}
.guide-faq__a {
  margin-top: var(--space-2);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
  max-width: 68ch;
  text-wrap: pretty;
}

/* ── Responsive ─────────────────────────────────────────────  */
@media (max-width: 900px) {
  .guide-hero { grid-template-columns: 1fr; gap: var(--space-8); }
  .guide-hero__visual { order: 2; }
  .modes { grid-template-columns: 1fr; }
  .afterlist { grid-template-columns: 1fr; gap: var(--space-6); }
  .spec__row { grid-template-columns: 1fr; gap: var(--space-1); }
}
@media (max-width: 560px) {
  .avail { padding: var(--space-4); }
  .avail__grid { grid-template-columns: 1.8rem repeat(6, 1fr); grid-auto-rows: 2rem; }
  .avail__cell--booked::after,
  .avail__cell--pick::after { font-size: 8px; padding-inline: .2rem; }
}

/* ============================================================
   Per-page signature devices (one each) — accounting / checklist
   / become-an-instructor. The shared primitives above carry the
   family resemblance; these carry each page's individuality.
   ============================================================ */

/* ── Accounting: year-end earnings artifact ─────────────────  */
.earn {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg, 16px);
  background: var(--color-neutral-0);
  box-shadow: 0 24px 60px -32px rgba(10, 42, 102, 0.28);
  overflow: hidden;
}
.earn__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-5) var(--space-6);
  border-bottom: 1px solid var(--color-border);
}
.earn__title {
  font-family: var(--font-display);
  font-weight: var(--weight-semibold);
  font-variation-settings: "opsz" 36;
  font-size: var(--text-lg);
}
.earn__year {
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  letter-spacing: .08em;
  color: var(--color-primary);
  background: var(--color-primary-tint);
  padding: .25rem .6rem;
  border-radius: 999px;
}
.earn__figures {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--color-border);
}
.figure {
  background: var(--color-neutral-0);
  padding: var(--space-5) var(--space-6);
}
.figure__label {
  font-size: var(--text-xs);
  color: var(--color-text-tertiary);
  letter-spacing: .04em;
}
.figure__value {
  margin-top: var(--space-2);
  font-family: var(--font-display);
  font-variation-settings: "opsz" 40;
  font-weight: var(--weight-semibold);
  font-size: clamp(1.5rem, 2.4vw, 2rem);
  line-height: 1;
  font-variant-numeric: tabular-nums;
  color: var(--color-text-primary);
}
.figure__value--accent { color: var(--color-primary); }
.figure__value--muted  { color: var(--color-text-tertiary); font-weight: var(--weight-medium); }
.earn__ledger {
  padding: var(--space-4) var(--space-6) var(--space-5);
  border-top: 1px solid var(--color-border);
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
}
.ledger__row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: var(--space-4);
  padding-block: .35rem;
  font-size: 11px;
  color: var(--color-text-secondary);
  font-variant-numeric: tabular-nums;
  border-bottom: 1px dashed var(--color-border);
}
.ledger__row:last-child { border-bottom: 0; }
.ledger__row b { color: var(--color-text-primary); font-weight: var(--weight-medium); }
.ledger__paid { color: var(--color-primary); }

/* Big inline Fraunces figures used in accounting body callouts */
.bignum {
  font-family: var(--font-display);
  font-variation-settings: "opsz" 96;
  font-weight: var(--weight-semibold);
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  line-height: 1;
  color: var(--color-primary);
  font-variant-numeric: tabular-nums;
}

/* ── Checklist: paper artifact ──────────────────────────────  */
.paper {
  background: var(--color-neutral-0);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md, 12px);
  box-shadow: 0 24px 60px -34px rgba(10, 42, 102, 0.25);
  padding: var(--space-6) var(--space-7);
  position: relative;
}
.paper::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: var(--color-primary);
  border-radius: var(--radius-md, 12px) var(--radius-md, 12px) 0 0;
}
.paper__tab {
  display: inline-flex;
  align-items: baseline;
  gap: var(--space-2);
  margin-bottom: var(--space-5);
}
.paper__tab b {
  font-family: var(--font-display);
  font-variation-settings: "opsz" 40;
  font-weight: var(--weight-semibold);
  font-size: var(--text-xl);
  color: var(--color-primary);
}
.paper__tab span {
  font-size: var(--text-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--color-text-tertiary);
  font-weight: var(--weight-semibold);
}

/* ── Become: journey spine + cost meter ─────────────────────  */
.journey {
  margin-top: var(--space-8);
  display: grid;
  gap: 0;
}
.journey__step {
  display: grid;
  grid-template-columns: 4rem 1fr;
  gap: var(--space-5);
  padding-bottom: var(--space-8);
  position: relative;
}
.journey__step::before {
  content: "";
  position: absolute;
  left: 1.55rem;
  top: 3rem;
  bottom: 0;
  width: 2px;
  background: var(--color-border);
}
.journey__step:last-child { padding-bottom: 0; }
.journey__step:last-child::before { display: none; }
.journey__num {
  width: 3.2rem; height: 3.2rem;
  border-radius: 50%;
  border: 1.5px solid var(--color-primary);
  color: var(--color-primary);
  background: var(--color-neutral-0);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display);
  font-variation-settings: "opsz" 36;
  font-weight: var(--weight-semibold);
  font-size: var(--text-lg);
  position: relative; z-index: 1;
}
.journey__name {
  font-family: var(--font-display);
  font-weight: var(--weight-semibold);
  font-variation-settings: "opsz" 40;
  font-size: var(--text-xl);
  margin-top: .3rem;
}
.journey__body {
  margin-top: var(--space-2);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
  max-width: 60ch;
  text-wrap: pretty;
}
.guide-section--ink .journey__body { color: var(--marketing-text-on-deep-muted); }

/* Cost meter — proportional bars showing the course dominates */
.cost { margin-top: var(--space-7); display: grid; gap: var(--space-3); }
.cost__row { display: grid; gap: var(--space-2); }
.cost__meta { display: flex; justify-content: space-between; font-size: var(--text-sm); }
.cost__meta b { font-weight: var(--weight-semibold); }
.cost__meta span { color: var(--color-text-secondary); font-variant-numeric: tabular-nums; }
.cost__bar { height: .7rem; border-radius: 999px; background: var(--color-primary-tint); overflow: hidden; }
.cost__fill { height: 100%; background: var(--color-primary); border-radius: 999px; }
.cost__fill--muted { background: var(--color-border-strong, #9aa4b2); }
