/* Only local form feedback. All visual site styling comes from the original site. */
.local-form-status,.onforce-delivery-notice{padding:12px 16px;margin:20px 0!important;border-left:3px solid #179dd0;background:#f1f9fc;color:#17384a;font-size:14px;line-height:1.6}
.onforce-delivery-notice a{color:#126386;text-decoration:underline;overflow-wrap:anywhere}
/* Keep the supplied brand mark's intrinsic proportions in the off-canvas header. */
.gva-offcanvas-content .top-canvas .logo-mm img { width: 150px; height: auto; max-width: 100%; max-height: none; }
/* The readiness controller completes the fill before revealing the page. */
#loftloader-wrapper.pl-imgloading #loader .imgloading-container {
  animation: none;
  height: 0%;
  opacity: 1;
}
/* Join Us: keep the original form inside its column at every breakpoint. */
.elementor-1714 .elementor-element.elementor-element-2eec63a {
  --container-widget-width: 100%;
  width: 100%;
  max-width: 100%;
}
.elementor-1714 .elementor-form input[type="file"] { width: 100%; max-width: 100%; line-height: 1.5; }
.elementor-1714 .elementor-form .elementor-field-type-upload { width: 100%; }
.elementor-1714 .elementor-form select { appearance: none; -webkit-appearance: none; }
@media (max-width: 767px) {
  .elementor-1714 .elementor-form .elementor-field-group { width: 100%; }
  .elementor-1714 .elementor-widget-text-editor { text-align: left; }
}
/* Use Elementor's caret once, without the theme's second background arrow. */
.elementor-1714 .elementor-form select { background-image: none !important; }
.elementor-1714 .elementor-form input[type="file"] { min-height: 44px; padding: 8px; border-radius: 3px; }
.elementor-1714 .elementor-form input[type="file"]::file-selector-button {
  border: 0; border-radius: 3px; padding: 8px 12px; margin-right: 12px;
  background: var(--e-global-color-primary); color: #fff; font: inherit; cursor: pointer;
}

.onforce-security { clear: both; width: 100%; margin: 16px 0; }
.onforce-event-summary { padding: 12px; background: #f3f6fa; color: #222; }
form [type="submit"]:disabled { opacity: .65; cursor: wait; }
/* Keep every submit label white, including nested labels and disabled Safari text. */
form [type="submit"],
form [type="submit"] * {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
form input[type="file"] + small { display: block; width: 100%; margin: 5px 0; }

/* Let page backgrounds reach the viewport; Elementor keeps its own text/card gutters. */
.elementor-page .single-page-template > .single-content-inner {
  width: 100%; max-width: none; padding-left: 0; padding-right: 0;
}
.elementor-page .single-page-template > .single-content-inner > .row { margin-left: 0; margin-right: 0; }
.elementor-page .single-page-template > .single-content-inner > .row > .col-12 { padding-left: 0; padding-right: 0; }
/* These banners put their photograph inside an inner section. */
.elementor-element-cfa5305 > .elementor-container,
.elementor-element-e914ca0 > .elementor-container { max-width: none !important; width: 100%; }
#loftloader-wrapper .loader-close-button { display: none !important; }
@media (prefers-reduced-motion: reduce) {
  #loftloader-wrapper, #loftloader-wrapper * { animation: none !important; transition-duration: 0s !important; }
}
@media (max-width: 767px) {
  form input:not([type="hidden"]), form select, form textarea { font-size: max(16px, 1em); }
  form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), form select, form [type="submit"] { min-height: 44px; }
}
/* The legacy loader adds a second of delay after completion; fade promptly instead. */
.loaded #loftloader-wrapper {
  transform: none; opacity: 0; visibility: hidden;
  transition: opacity 180ms ease-out, visibility 0s 180ms;
}
.loaded #loftloader-wrapper .loader-section { transition-duration: 180ms !important; transition-delay: 0s !important; }
.loaded #loftloader-wrapper #loader { transition: opacity 100ms ease-out; }
@media (prefers-reduced-motion: reduce) {
  .loaded #loftloader-wrapper, .loaded #loftloader-wrapper #loader { transition: none; }
}
/* Blog hero must crop to its frame, never tile a smaller responsive image. */
.elementor-52 .elementor-element.elementor-element-8a959a3 {
  background-size: cover; background-position: center center; background-repeat: no-repeat;
}
/* The home enquiry is complete on this page, with a centered action beneath it. */
#wpforms-1923 form.onforce-home-enquiry,
#wpforms-1994 form.onforce-home-enquiry { display: block; width: 100%; margin: 0 !important; box-sizing: border-box; }
#wpforms-1923 form.onforce-home-enquiry { padding: 20px; }
.onforce-home-enquiry .wpforms-field-container {
  display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px; width: 100% !important; float: none !important;
}
.onforce-home-enquiry .wpforms-field-container > .wpforms-field {
  grid-column: span 2; width: 100% !important; min-width: 0;
  margin: 0 !important; padding: 0 !important; float: none !important; clear: none !important;
}
.onforce-home-enquiry .wpforms-field-container > .onforce-contact-field { grid-column: span 3; }
.onforce-home-enquiry .wpforms-field-container > [hidden] { display: none !important; }
.onforce-home-enquiry .onforce-contact-field input {
  width: 100% !important; max-width: none !important; min-height: 44px;
  padding: 10px 14px !important; border: 1px solid #e2dfeb !important;
  border-radius: 3px !important; background: #fff; color: #222;
}
.onforce-home-enquiry .onforce-contact-field input:focus { outline: 2px solid #179dd0; outline-offset: 2px; }
.onforce-home-enquiry .onforce-contact-field input::placeholder { color: #666; opacity: 1; }
.onforce-home-enquiry .wpforms-submit-container {
  display: flex !important; justify-content: center; align-items: center;
  width: 100% !important; float: none !important; clear: both; margin: 16px 0 0 !important; padding: 0 !important;
}
.onforce-home-enquiry button[type="submit"] {
  margin: 0 !important; width: 160px !important; min-height: 44px;
  background: #179dd0 !important; border: 0 !important; border-radius: 10px !important;
}
.onforce-home-enquiry button[type="submit"]:hover { background: #087daa !important; }
.onforce-home-enquiry .onforce-security { text-align: center; }
/* Reuse the original torn white edge seen on the Contact and Blogs banners. */
.elementor-541 .elementor-element-c2689ee::after,
.elementor-541 .elementor-element-be4693b::after {
  content: ""; position: absolute; bottom: -1px; left: 0; right: 0; height: 63px;
  background: var(--onforce-img-283a3926ac270508, url('/wp-content/uploads/2025/07/shape-bottom.png')) bottom right repeat-x;
  pointer-events: none; z-index: 2;
}
@media (max-width: 1024px) {
  .onforce-home-enquiry .wpforms-field-container { grid-template-columns: minmax(0, 1fr); }
  .onforce-home-enquiry .wpforms-field-container > .wpforms-field { grid-column: 1; }
  .elementor-541 .elementor-element.elementor-element-be4693b { padding-bottom: 90px; }
}
