.prose {
  max-width: 75ch;
}

.prose h2,
.prose h3 {
  margin-top: 28px;
}

.lead-form,
.modal-card {
  display: grid;
  gap: 10px;
}

.lead-form label,
.modal-card label {
  display: grid;
  gap: 4px;
  font-size: 14px;
}

.lead-form input,
.lead-form textarea,
.modal-card input,
.modal-card textarea {
  font: inherit;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.trust-portrait {
  width: min(100%, 420px);
  aspect-ratio: 4 / 3;
  object-fit: cover;
  margin: 16px 0 24px;
  background: var(--bg-muted);
}

.why-list {
  counter-reset: why;
  list-style: none;
  padding: 0;
}

.why-list li {
  counter-increment: why;
  margin-bottom: 12px;
  padding-left: 2em;
  position: relative;
}

.why-list li::before {
  content: counter(why) ".";
  position: absolute;
  left: 0;
  font-weight: 700;
}

.quote-cta {
  margin: 28px 0;
  padding: 20px 24px;
  border-left: 3px solid var(--accent);
  font-size: 18px;
}

.job-card {
  border: 1px solid var(--border);
  padding: 16px;
  margin-bottom: 12px;
}

.steps {
  padding-left: 1.4em;
}

.steps li {
  margin-bottom: 10px;
}

.gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin: 16px 0 28px;
}

.gallery img {
  width: 100%;
  aspect-ratio: 335 / 220;
  object-fit: cover;
  background: var(--bg-muted);
}

.faq-list details {
  border-bottom: 1px solid var(--border);
  padding: 12px 0;
}

.faq-list summary {
  cursor: pointer;
  font-weight: 600;
}

.map-slot {
  min-height: 280px;
  background: var(--bg-muted);
  display: grid;
  place-items: center;
  color: var(--text-muted);
  margin: 16px 0 28px;
}

.social-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 28px;
}

.article-hero {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  margin: 8px 0 24px;
  background: var(--bg-muted);
}

@media (max-width: 767px) {
  .gallery,
  .social-cards {
    grid-template-columns: 1fr;
  }
}
