/* Orlando Shop Runners — run-sheet / lesson chrome.
   Distinct from the shared directory-resource stencil. */

.run-kicker {
  margin: 0;
  color: #f8fafc;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-size: 0.72rem;
  text-shadow: 0 1px 2px #000d, 0 4px 14px #0008;
}

.almanac {
  margin: 1.25rem var(--pad-inline) 1.75rem;
  padding: 1.25rem 1.2rem 1.4rem;
  background:
    linear-gradient(180deg, color-mix(in oklab, var(--highlight) 55%, var(--paper)), var(--paper));
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
}

.almanac__lede {
  max-width: 46rem;
  font-size: var(--font-size-lg);
  line-height: 1.5;
  margin: 0 0 1rem;
}

.almanac h2,
.lesson h2 {
  margin: 1.6rem 0 0.55rem;
  font-family: var(--font-display);
  font-size: var(--font-size-xl);
  line-height: 1.2;
}

.almanac h2:first-of-type,
.lesson h2:first-of-type {
  margin-top: 0.35rem;
}

.lesson-grid {
  display: grid;
  gap: 1rem;
  margin: 0 var(--pad-inline) 1.75rem;
}

.lesson-card {
  display: grid;
  gap: 0.45rem;
  padding: 1.1rem 1.15rem 1.25rem;
  background: var(--color-surface-elevated);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  text-decoration: none;
  color: inherit;
  box-shadow: var(--shadow-sm);
}

.lesson-card:hover {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

.lesson-card__num {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.08em;
  font-size: 0.78rem;
  text-transform: uppercase;
  color: var(--color-accent);
}

.lesson-card h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.2rem;
}

.lesson-card p {
  margin: 0;
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
}

.ticket {
  counter-reset: runstep;
  list-style: none;
  margin: 0.5rem 0 1.1rem;
  padding: 0;
  display: grid;
  gap: 0.65rem;
}

.ticket > li {
  display: grid;
  grid-template-columns: 2.4rem 1fr;
  gap: 0.85rem;
  align-items: start;
  padding: 0.85rem 0.95rem;
  background: color-mix(in oklab, var(--paper) 88%, var(--highlight));
  border: 1px dashed color-mix(in oklab, var(--accent) 35%, var(--color-border));
  border-radius: 0.7rem;
}

.ticket > li::before {
  counter-increment: runstep;
  content: counter(runstep);
  display: grid;
  place-items: center;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 999px;
  background: var(--grad-accent);
  color: var(--paper);
  font-weight: 800;
  font-family: var(--font-display);
}

.ticket strong {
  display: block;
  font-family: var(--font-display);
  margin-bottom: 0.15rem;
}

.lesson {
  margin: 0 var(--pad-inline) 1.75rem;
  padding: 1.35rem 1.25rem 1.7rem;
  max-width: 48rem;
  background:
    repeating-linear-gradient(
      180deg,
      transparent 0 1.55rem,
      color-mix(in oklab, var(--accent) 9%, transparent) 1.55rem 1.58rem
    ),
    var(--color-surface-elevated);
  border: 1px solid var(--color-border);
  border-left: 6px solid var(--accent);
  border-radius: 0 1.1rem 1.1rem 0;
  box-shadow: var(--shadow-sm);
}

.lesson--wide {
  max-width: 58rem;
}

.lesson .lead,
.almanac .lead {
  font-size: var(--font-size-lg);
  line-height: 1.5;
  max-width: 46rem;
}

.lesson p,
.almanac p {
  max-width: 46rem;
}

.toc {
  margin: 0 0 1.25rem;
  padding: 0.85rem 1rem;
  background: color-mix(in oklab, var(--highlight) 70%, var(--paper));
  border-radius: 0.7rem;
  border: 1px solid var(--color-border);
}

.toc p {
  margin: 0 0 0.4rem;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--color-accent);
}

.toc ol {
  margin: 0;
  padding-left: 1.2rem;
}

.toc a {
  color: inherit;
}

aside.factbox {
  margin: 1.25rem 0;
  padding: 1rem 1.1rem 1.15rem;
  background: color-mix(in oklab, var(--highlight) 62%, var(--paper));
  border: 1px solid var(--color-border);
  border-radius: 0.85rem;
}

aside.factbox > p {
  margin: 0 0 0.55rem;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--color-accent);
}

aside.factbox dl {
  margin: 0;
  display: grid;
  gap: 0.65rem;
}

aside.factbox dt {
  font-family: var(--font-display);
  font-weight: 700;
}

aside.factbox dd {
  margin: 0.15rem 0 0;
  color: var(--color-text-muted);
}

.pull-quote {
  margin: 1.35rem 0;
  padding: 0.35rem 0 0.35rem 1.1rem;
  border-left: 4px solid var(--accent);
  font-family: "Iowan Old Style", Palatino, "Palatino Linotype", serif;
  font-style: italic;
  font-size: 1.15rem;
  line-height: 1.45;
  color: var(--ink);
  max-width: 38rem;
}

.cite-table,
.lesson table,
.almanac table {
  width: 100%;
  border-collapse: collapse;
  margin: 0.75rem 0 1.2rem;
  font-size: var(--font-size-sm);
  background: var(--paper);
}

.cite-table th,
.cite-table td,
.lesson table th,
.lesson table td,
.almanac table th,
.almanac table td {
  text-align: left;
  vertical-align: top;
  padding: 0.55rem 0.65rem;
  border-bottom: 1px solid var(--color-border);
}

.cite-table th,
.lesson table th,
.almanac table th {
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.sources {
  margin: 1.4rem 0 0.4rem;
  padding: 0.9rem 1rem;
  background: color-mix(in oklab, var(--paper) 80%, var(--ink) 4%);
  border-radius: 0.7rem;
}

.sources h2 {
  margin-top: 0;
}

.sources ol {
  margin: 0;
  padding-left: 1.2rem;
}

.next-action {
  margin: 1.5rem 0 0;
  padding: 1rem 1.1rem;
  background: var(--grad-wash);
  border: 1px solid var(--color-border);
  border-radius: 0.85rem;
}

.next-action p {
  margin: 0 0 0.65rem;
}

.corridor-grid {
  display: grid;
  gap: 1rem;
  margin: 0 var(--pad-inline) 1.75rem;
}

.corridor {
  padding: 1.1rem 1.15rem 1.25rem;
  background: var(--color-surface-elevated);
  border: 1px solid var(--color-border);
  border-top: 5px solid var(--accent);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

.corridor h2 {
  margin: 0 0 0.4rem;
  font-family: var(--font-display);
  font-size: 1.25rem;
}

.corridor p {
  margin: 0 0 0.65rem;
  max-width: 40rem;
}

.check-sheet ol {
  margin: 0.4rem 0 1rem;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.45rem;
}

.check-sheet li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.7rem;
  align-items: start;
  padding: 0.55rem 0.2rem;
  border-bottom: 1px dotted var(--color-border);
}

.check-sheet input[type="checkbox"] {
  width: 1.15rem;
  height: 1.15rem;
  margin-top: 0.2rem;
}

.run-type {
  cursor: pointer;
  font: inherit;
  font-weight: 650;
  display: inline-flex;
  align-items: center;
  min-height: var(--touch-min);
  padding: 0.25rem 0.75rem;
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
  background: var(--highlight);
  color: var(--ink);
}

.run-type[aria-pressed="true"] {
  background: color-mix(in oklab, var(--accent) 28%, var(--paper));
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

.publisher-line {
  margin: 1rem 0 0;
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.hero-lessons {
  margin: 0.85rem var(--pad-inline) 0;
}

@media (min-width: 860px) {
  .lesson-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .corridor-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .lesson {
    margin-inline: auto;
    width: calc(100% - 2 * var(--pad-inline));
  }
}
