/* content-section.css — repeatable block: H2 + text + optional image */
.content-section { padding-block: calc(var(--space-section) / 2); }
.content-section__inner { display: flex; flex-direction: column; }
.content-section h2 { margin-bottom: var(--space-h2-text); }
.content-section h3 {
  margin-top: var(--space-paragraph);
  margin-bottom: var(--space-h3-text);
  color: var(--color-white);
}
.content-section p + h3 { margin-top: var(--space-paragraph); }
.content-section p + p { margin-top: var(--space-paragraph); }

/* Bulleted content lists */
.content-list {
  margin-top: var(--space-h3-text);
  display: grid;
  gap: 0.5rem;
}
.content-list li {
  position: relative;
  padding-left: 1.5rem;
}
.content-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 8px;
  height: 8px;
  background: var(--color-accent);
  clip-path: polygon(0 0, 100% 0, 100% 60%, 60% 100%, 0 100%);
}

/* ----------------------------------------------------------------------
   Section image after an H2 — must ALWAYS display fully, never cropped.
   object-fit: contain + height:auto guarantees the whole image is shown.
   ---------------------------------------------------------------------- */
.section-image {
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  margin-bottom: var(--space-h2-text);
  background: var(--color-bg-dark);
  clip-path: var(--clip-cut);
}

/* Image placement (spec 4.5): the image always sits directly after the H2
   and before the text — on both mobile and desktop. DOM order (H2 → image →
   text) already produces this, so no re-ordering is needed. */
.content-section--media .content-section__inner { display: flex; flex-direction: column; }
