.cell-grid-section { padding-block: var(--section-pad); }
.cell-grid-section--pad-top { padding-bottom: 0; }
.cell-grid-section--pad-bottom { padding-top: 0; }
.cell-grid-section--pad-none { padding-block: 0; }
.cell-grid-section {
  display: block;
  background: rgba(var(--color-background));
  color: rgba(var(--color-text));
}
.cell-grid-section .cell-grid-section__wrap { max-width: var(--cell-grid-container, var(--wrap)); }
.cell-grid-section__heading { margin-bottom: var(--cell-grid-head-gap, 10px); }
.cell-grid-section__intro { margin-bottom: var(--cell-grid-intro-gap, 28px); }
.cell-grid-section__grid { grid-template-columns: repeat(auto-fit, minmax(var(--cell-grid-min, 280px), 1fr)); }
.cell-grid-section__cell { padding: var(--cell-grid-pad, 28px); }
/* "timeline" row layout: one full-width row per block, split into a label column and a body column. */
.cell-grid-section__grid--timeline { grid-template-columns: 1fr; }
.cell-grid-section__row {
  display: grid;
  grid-template-columns: var(--cell-grid-label-width, 220px) 1fr;
  gap: var(--cell-grid-row-gap, 24px);
  padding: var(--cell-grid-pad, 28px);
}
.cell-grid-section .cell-grid-section__label {
  line-height: 1;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.cell-grid-section__row-title {
  font: 700 22px/1.15 var(--font-body);
  margin-bottom: var(--cell-grid-row-title-gap, 10px);
}
.cell-grid-section__row-text { font-size: 15px; }
.cell-grid-section__title { margin: 14px 0 8px; }
.cell-grid-section__text { font-size: 15px; }
/* "Plain" cells: no chip, a compact uppercase display label, and body copy at the running size. */
.cell-grid-section__title--plain {
  font-size: var(--cell-grid-plain-title-size, 15px);
  letter-spacing: var(--cell-grid-plain-title-tracking, 0.06em);
  margin: 0;
}
.cell-grid-section__cell--plain .cell-grid-section__text {
  font-size: 16px;
  margin-top: var(--cell-grid-plain-text-gap, 10px);
}
@media (max-width: 900px) {
  .cell-grid-section__grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
  .cell-grid-section__grid--timeline { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .cell-grid-section__row {
    grid-template-columns: 1fr;
    gap: var(--cell-grid-row-gap-narrow, 14px);
  }
}
@media (max-width: 560px) {
  .cell-grid-section__grid { grid-template-columns: 1fr; }
  .cell-grid-section__cell,
  .cell-grid-section__row { padding: var(--cell-grid-pad-narrow, 28px); }
}
