/*
 * small-batch-production.preview.css · auto-generated by apply_audit_to_preview.py
 *
 * Per-page layout primitives ported from the wireframe's <style> block.
 * Every rule below appeared as `missing` in the v2 audit manifest — i.e. the
 * wireframe declared the layout but brand.preview.css does not. Without this
 * file the section collapses to single-column flow (the Stage 13 bug).
 *
 * DO NOT add decoration here (colors, shadows, typography). That belongs in
 * brand.preview.css. Layout primitives only.
 *
 * Source manifest: C:/Users/james/Desktop/Claude Agent/projects/3dpe-website/research/audit-small-batch-production.json
 * Source wireframe: C:/Users/james/Desktop/Claude Agent/projects/3dpe-website/design-previews/wireframes/small-batch-production.html
 */


/* ===== Section 02 · HERO ===== */

.hero {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 36px;
  align-items: center;
  position: relative;
}


/* ===== Section 02½ · QUANTIFIED TRUST ===== */

.trust-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}


/* ===== Section 04 · COMPARISON BAND ===== */

.cmp {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
}


/* ===== Section 04 · WHO THIS IS FOR ===== */

.icp-card {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 28px;
  align-items: start;
}


/* ===== Section 05 · WHY 3DPE FOR BATCH ===== */

.why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}


/* ===== Section 06 · OUR BATCH PROCESS ===== */

.step {
  position: relative;
}

.steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  position: relative;
}


/* ===== Section 07 · MATERIALS RANKED FOR BATCH ===== */

.mat-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}


/* ===== Section 09 · PRICING FRAMEWORK ===== */

.pricing-band {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 36px;
  align-items: center;
}

.pricing-drivers {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 14px;
}


/* ===== Section 10 · OBJECTIONS ===== */

.obj-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}


/* ===== Section 11 · RISK REVERSAL ===== */

.risk-band {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}


/* ===== Section 12 · TURNKEY + FULFILMENT TEASER ===== */

.fulfil-teaser {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 28px;
  align-items: center;
}


/* ===== Section 15 · FOOTER ===== */

.footer {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}


/* ===== Mobile breakpoint · ported from wireframe @media (max-width: 860px) ===== */

@media (max-width: 860px) {

  .hero {
  grid-template-columns: 1fr;
  }

  .trust-grid {
  grid-template-columns: 1fr;
  }

  .why-grid {
  grid-template-columns: 1fr;
  }

  .obj-grid {
  grid-template-columns: 1fr;
  }

  .risk-band {
  grid-template-columns: 1fr;
  }

  .mat-row {
  grid-template-columns: 1fr;
  grid-template-columns: repeat(2, 1fr);
  }

  .cmp {
  grid-template-columns: 1fr;
  }

  .icp-card {
  grid-template-columns: 1fr;
  }

  .pricing-band {
  grid-template-columns: 1fr;
  }

  .fulfil-teaser {
  grid-template-columns: 1fr;
  }

  .steps {
  grid-template-columns: 1fr;
  }

  .footer {
  grid-template-columns: 1fr 1fr;
  }

}
