/* Additions for the static build (not in the original React stylesheet). */

/* Spam trap field: invisible to people, filled in by bots. */
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.enquiry-form { position: relative; }
.form-submit:disabled { opacity: .6; cursor: progress; }
.form-status.is-error { color: #ff9c86; }
.form-status a { text-decoration: underline; }
.cf-turnstile { margin-top: 14px; }

/* Case study photo, when one is set in the CMS. */
.case-image-placeholder.has-image::before { display: none; }
.case-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.case-image-placeholder.has-image .case-image-index { position: relative; z-index: 1; }

/* "How we work" and founder images: the box follows the photo's own shape, so it's never cropped or stretched. */
.approach-image-wrap, .founder-visual { min-height: 0; align-self: center; }
.approach-image, .founder-image { position: relative; inset: auto; display: block; height: auto; }

/* "Our offer" cards: tag, title and description line up across the columns, whatever their lengths. */
@media (min-width: 651px) {
  .services-grid { grid-auto-rows: auto; }
  .service-card, .service-card + .service-card { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 0; min-height: 0; padding-bottom: 70px; }
  .service-card-body { display: contents; }
  .service-card-top { grid-row: 1; }
  .service-tag { grid-row: 2; margin: 56px 0 15px; }
  .service-card h3 { grid-row: 3; }
  .service-copy { grid-row: 4; }
}
@media (min-width: 651px) and (max-width: 900px) {
  .services-grid .service-card:nth-child(odd) { padding-left: 0; border-left: 0; }
}
