/* =====================================================================
   Product pipeline diagram (personalised-cardboard-cutouts)
   No source PNG for this one — content originated from the case study
   prose rather than transcribed from an image (both remaining case
   studies only had empty `.image-placeholder` divs). Straightforward
   linear build pipeline, no before/after moment, so no functional
   red/green accent — monochrome cream-on-black like need-to-options.
   ===================================================================== */

.ppdiagram {
  --pp-bg: #1a1810;
  --pp-card: #221f16;
  --pp-text: #f4efe3;
  --pp-muted: #948d7c;
  --pp-border: #3a3527;
  --pp-radius: 16px;

  position: relative;
  background: var(--pp-bg);
  color: var(--pp-text);
  border: 1px solid var(--pp-border);
  border-radius: var(--pp-radius);
  padding: var(--space-6);
  margin: var(--space-4) 0;
}

@media (min-width: 48rem) {
  .ppdiagram { padding: var(--space-8); }
}

@media (min-width: 64rem) {
  .ppdiagram { padding: var(--space-12); }
}

.ppdiagram .diagram-icon {
  width: 20px;
  height: 20px;
  stroke: currentColor;
  stroke-width: 1.5;
  fill: none;
  flex-shrink: 0;
}

.pp-section-head {
  margin-bottom: var(--space-6);
}

.pp-eyebrow {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pp-muted);
  margin: 0 0 var(--space-2);
}

.ppdiagram h2 {
  font-family: var(--font-display);
  color: var(--pp-text);
  font-size: var(--fs-lg);
  line-height: var(--lh-snug);
  margin: 0 0 var(--space-2);
  text-wrap: balance;
}

@media (min-width: 48rem) {
  .ppdiagram h2 { font-size: var(--fs-xl); }
}

@media (min-width: 64rem) {
  .ppdiagram h2 { font-size: var(--fs-2xl); }
}

.pp-subtitle {
  font-family: var(--font-mono);
  font-size: var(--fs-sm);
  color: var(--pp-muted);
  margin: 0;
  max-width: 42rem;
}

/* Steps ------------------------------------------------------------ */

.pp-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.pp-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
}

.pp-step-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: var(--pp-bg);
  border: 1px solid var(--pp-border);
  color: var(--pp-text);
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  flex-shrink: 0;
}

.pp-step-card {
  width: 100%;
  background: var(--pp-card);
  border: 1px solid var(--pp-border);
  border-radius: var(--pp-radius);
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-2);
}

.pp-step-card .diagram-icon {
  color: var(--pp-text);
  margin-bottom: var(--space-1);
}

.pp-step-title {
  font-family: var(--font-body);
  font-size: var(--fs-md);
  font-weight: 500;
  margin: 0;
}

.pp-step-desc {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  color: var(--pp-muted);
  margin: 0;
}

.pp-arrow {
  color: var(--pp-muted);
  display: flex;
  align-items: center;
  justify-content: center;
}

.pp-arrow .diagram-icon {
  transform: rotate(90deg);
}

/* Outcome badge --------------------------------------------------------- */

.pp-outcome {
  margin-top: var(--space-6);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-2);
  background: var(--pp-card);
  border: 1px solid var(--pp-border);
  border-radius: var(--pp-radius);
  padding: var(--space-8) var(--space-6);
}

.pp-outcome .diagram-icon {
  width: 28px;
  height: 28px;
  color: var(--pp-text);
}

.pp-outcome-stat {
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  color: var(--pp-text);
}

.pp-outcome-desc {
  font-family: var(--font-mono);
  font-size: var(--fs-sm);
  color: var(--pp-muted);
  max-width: 32rem;
  margin: 0;
}

/* Desktop — single row, same container-cap-safe breakpoint as the
   other diagrams (see project memory on the 1024–1151px pinch zone) */

@media (min-width: 78rem) {
  .pp-steps {
    flex-direction: row;
    align-items: flex-start;
  }

  .pp-step {
    flex: 1 1 9rem;
    min-width: 8rem;
  }

  .pp-arrow .diagram-icon {
    transform: none;
  }
}
