/* Module 05: readable type on the 1920 x 1080 course slide canvas.
   Included only by the three facility-design decks; the shared theme stays intact. */
:root {
  --warehouse-type-body: 40px;
  --warehouse-type-support: 32px;
  --warehouse-type-title: 54px;
}

.reveal .slides section.slide:not(.warehouse-cover) {
  --slide-content-role: 36px;
  line-height: 1.28;
}

.reveal .slides section.slide:not(.warehouse-cover):is(.dense-slide,.scrollable) {
  --slide-content-role: 36px;
}

/* The theme's scrollable/dense role otherwise reduces all slide contents. */
.reveal .slides section.slide:is(.dense-slide, .scrollable)
  > :not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(aside) {
  font-size: var(--slide-content-role);
  line-height: 1.28;
}

.reveal .slides section.slide:not(.warehouse-cover) > :is(h2,h3,h4,h5,h6) {
  margin-bottom: 0.38em;
}

.reveal .slides section.slide:not(.warehouse-cover) p {
  margin: 0.35em 0;
}

.reveal .slides section.slide:not(.warehouse-cover) :is(ul,ol) {
  margin-top: 0.25em;
  margin-bottom: 0.3em;
}

.reveal .slides section.slide:not(.warehouse-cover) li {
  margin-bottom: 0.2em;
  line-height: 1.28;
}

.reveal .slides section.slide:not(.warehouse-cover) li + li {
  margin-top: 0.16em;
}

.reveal .slides section.slide .columns {
  gap: 48px;
}

/* Quarto's callout body uses rem units. Reset it explicitly so examples
   and solver explanations do not shrink to browser-default text. */
.reveal .slides section.slide .callout {
  margin: 0.5em 0;
  padding: 18px 24px;
  font-size: 36px !important;
  box-shadow: none;
}

.reveal .slides section.slide .callout :is(.callout-body, .callout-content, p, li) {
  font-size: 36px !important;
  line-height: 1.28;
}

.reveal .slides section.slide .callout :is(.callout-title,.callout-title-container) {
  font-size: 28px !important;
  line-height: 1.25;
  letter-spacing: 0;
  text-transform: none;
}

.reveal .slides section.slide .callout .callout-title-container * {
  font-size: 28px !important;
  letter-spacing: 0;
  text-transform: none;
}

.reveal .slides section.slide blockquote {
  margin: 0.55em 0;
  padding: 18px 24px;
}

.reveal .slides section.slide blockquote p {
  font-size: inherit;
}

.reveal .slides section.slide .caseBox {
  font-size: inherit;
  margin: 0.5em 0;
}

/* Use the available width and keep captions independently readable. */
.reveal .slides section.slide figure > figcaption,
.reveal .slides section.slide .figure-caption {
  max-width: 100%;
  font-size: 28px;
  line-height: 1.25;
}

.reveal .slides section.slide table {
  width: 100%;
  font-size: 32px;
}

.reveal .slides section.slide table :is(th,td) {
  padding: 0.24em 0.45em;
}

.reveal .slides section.slide .math.display {
  display: block;
  margin: 0.65em 0;
}

/* Short numbered design sequences contain core teaching content. */
.reveal .slides section.slide .design-sequence :is(p,li) {
  font-size: 40px !important;
}

/* Space the two requirement examples so their changed assumptions stand out. */
.reveal #overall-structure-service-and-product-requirements .callout {
  margin: 28px 0;
  padding: 26px 30px;
}

/* The graph's generated 576 px width leaves much of its column unused. */
.reveal #fig-wh_design_problems svg {
  width: 100%;
  height: auto;
  max-height: 680px !important;
}

/* Give short constraint slides a readable focal point instead of leaving
   their only two or three equations at the top of a largely empty canvas. */
.reveal :is(
  #constraints-dimensions-within-bounds,
  #constraints-proper-department-sizes,
  #constraints-centroid-coordinates,
  #constraints-non-negativity-and-variables
) .math.display {
  box-sizing: border-box;
  padding: 34px 24px;
  margin: 0.9em 0;
  border-left: 4px solid #f6a63b;
  background: #f3f6f4;
  font-size: 48px;
}

/* Restore the original comparison without shrinking either sequence. */
.reveal .slides section.slide:has(> .design-comparison) .column {
  padding: 18px 22px;
  border-top: 4px solid #f6a63b;
  background: #f3f6f4;
}

.reveal .slides section.slide:has(> .design-comparison) .column :is(p,li) {
  font-size: 32px;
  line-height: 1.25;
}

.reveal .slides section.slide:has(> .design-comparison) .column > p:first-child {
  margin-bottom: 0.6em;
}

.reveal .slides section.slide:has(> .design-comparison) blockquote p {
  font-size: 32px;
}

.reveal .component-1 { color: #24695c; }
.reveal .component-2 { color: #926009; }
.reveal .component-3 { color: #305993; }

.reveal .slides section.slide .example-phase p {
  font-size: 32px;
  line-height: 1.3;
}

.reveal .slides section.slide .example-layout p {
  font-size: 32px;
  line-height: 1.3;
}

.reveal .slides section.slide:has(> .from-to-input-slide) .component-inputs :is(th,td) {
  padding: 24px 18px;
  vertical-align: middle;
}

.reveal .slides section.slide .flow-principle {
  margin-top: 32px;
  padding: 20px 26px;
  border-left: 4px solid #f6a63b;
  background: #f3f6f4;
}

.reveal .slides section.slide:has(> .from-to-build-slide) .flow-route {
  margin: 0 0 22px;
  padding: 18px 22px;
  border-left: 4px solid #9caeaa;
  background: #f3f6f4;
}

.reveal .slides section.slide:has(> .from-to-build-slide) .flow-route p {
  font-size: 32px;
  line-height: 1.25;
}

.reveal .slides section.slide:has(> .from-to-build-slide) .flow-route .route-detail {
  font-size: 28px;
}

.reveal .slides section.slide:has(> .from-to-build-slide) .matrix-label {
  font-size: 32px;
}

.reveal .slides section.slide:has(> .from-to-build-slide) .from-to-matrix {
  table-layout: fixed;
  margin-top: 18px;
  font-variant-numeric: tabular-nums;
}

.reveal .slides section.slide:has(> .from-to-build-slide) .from-to-matrix :is(th,td) {
  height: 72px;
  padding: 10px;
  text-align: center;
  vertical-align: middle;
  border: 1px solid #dce1de;
}

.reveal .slides section.slide:has(> .from-to-build-slide) .from-to-matrix thead th {
  height: 54px;
}

.reveal .matrix-diagonal { color: #8a9390; }
.reveal .backtracking-cell { background: #fff1d7; }

.reveal .matrix-entry {
  display: grid;
  place-items: center;
}

.reveal .matrix-entry > * { grid-area: 1 / 1; }
.reveal .matrix-contributions { white-space: nowrap; }
.reveal .matrix-total { font-size: 36px; font-weight: 600; }

.reveal .slides section.slide:has(> .from-to-build-slide) .flow-total-note p {
  font-size: 32px;
  line-height: 1.25;
}

.reveal .slides section.slide:has(> .from-to-build-slide) .flow-source {
  margin-top: 16px;
  font-size: 28px;
}

.reveal .slides section.slide .grid-definition {
  margin: 14px 0 0;
  padding: 12px 16px;
  border-left: 4px solid #f6a63b;
  background: #f3f6f4;
}

.reveal .slides section.slide .grid-definition p {
  font-size: 28px;
  line-height: 1.2;
  margin: 0.2em 0;
}

.reveal .slides section.slide:has(.grid-definition) aside p {
  font-size: 28px;
}
