

/* ── Spacing ── */
.mb-0    { margin-bottom: 0; }
.mb-1rem { margin-bottom: 1rem; }

/* ── Image helpers ── */
.img-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.img-cover--short {
  width: 100%;
  height: 120px;
  object-fit: cover;
  display: block;
}

/* ── Card shape ── */
.card-rounded {
  border-radius: 0.75rem;
  overflow: hidden;
  aspect-ratio: 4/3;
  box-shadow: var(--shadow-lg);
}

/* ── Pull-quote ── */
.pull-quote {
  background: var(--light-bg);
  border-left: 3px solid var(--accent);
  padding: 1.25rem 1.5rem;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  margin: 1.5rem 0;
}

.pull-quote p {
  font-style: italic;
  margin-bottom: 0.5rem;
}

/* ── Photo inset (floating overlay photo) ── */
.photo-inset {
  position: absolute;
  bottom: -1rem;
  left: -1rem;
  width: 48%;
  border-radius: 0.5rem;
  overflow: hidden;
  box-shadow: 0 12px 36px rgba(10, 42, 66, 0.18);
  border: 3px solid var(--white);
}

/* ── Hero placeholder icon ── */
.hero-placeholder-icon {
  font-size: 8rem;
  color: rgba(255, 255, 255, 0.15);
}

/* ── Support heart colour ── */
.support-heart { color: #ff6b6b; }

/* ── Required field star ── */
.required-star {
  color: #e53e3e;
  margin-left: 2px;
  font-weight: 700;
}
