/* WordPress-only fixes. design.css is generated from the static HTML build; anything
 * needed only because WordPress renders the page goes here, so a design rebuild
 * never loses it. */

/* ===== Gravity Forms in the design's form grid (.form-grid) =====
 * Fields carry the design's .input / .w-input classes (inc/forms.php); this lays the
 * Gravity Forms wrappers out like the Webflow form: two half-width name fields, then
 * full-width email, message and submit. */
.cta-form .gform_fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-column-gap: 20px;
  grid-row-gap: 20px;
}

.cta-form .gfield {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.cta-form .gfield--width-full {
  grid-column: span 2 / span 2;
}

/* Labels stay for screen readers; the design shows placeholders only */
.cta-form .gfield_label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* Gravity Forms' character counters (the length limit itself still applies) */
.cta-form .charleft {
  display: none;
}

/* Gravity Forms' spam honeypot field */
.cta-form .gform_validation_container {
  display: none !important;
}

/* The design's message box is 100px high; Gravity Forms sets rows="10" */
.cta-form textarea.input {
  height: 100px;
}

.cta-form .gform_footer {
  margin-top: 20px;
}

.cta-form .gfield_validation_message,
.cta-form .gform_validation_errors {
  margin-top: 6px;
  color: #c00;
  font-size: 14px;
}

.cta-form .gform_validation_errors {
  margin: 0 0 20px;
}

/* The confirmation reuses the design's success box, which Webflow shows by script */
.gform_confirmation_message .w-form-done {
  display: block;
}

/* A footer location set to "Under the one above" shares its block, after a gap */
.footer-location > .emphasis:not(:first-child) {
  margin-top: 20px;
}

/* Footer, four-column layout: "Our Company" and "Pillars of Services" sit in the two
 * right-hand columns, leaving the (empty) third menu column as the gap in the middle.
 * Phones keep the design's two-column order. */
@media screen and (min-width: 768px) {
  #w-node-_00263dae-6580-919f-1e38-08991d849bd4-1d849ba9 {
    grid-column: 2;
    grid-row: 1;
  }

  #w-node-_00263dae-6580-919f-1e38-08991d849bca-1d849ba9 {
    grid-column: 4;
    grid-row: 1;
  }

  #w-node-_00263dae-6580-919f-1e38-08991d849bba-1d849ba9 {
    grid-column: 3;
    grid-row: 1;
  }
}

/* Team intro: optional second photo row, centred under the first (width set inline) */
.team-member-collection.second-row {
  margin-top: 40px;
}

/* Team intro: photos in a row share one bottom line, so a job title that wraps onto
 * an extra line (e.g. "Business Development Manager") does not push its photo lower. */
.team-member-collection > .w-dyn-item > .team-member-stack {
  height: 100%;
}

.team-member-collection > .w-dyn-item > .team-member-stack > img {
  margin-top: auto;
}
