/* Keep readable gutters when laptop zoom reduces the CSS viewport. */
:root { --site-gutter: clamp(20px, 3vw, 48px); }
#site-content { overflow-x: clip; }
#site-header > .site-section, #site-footer > .site-section,
#site-content > .site-section { padding-inline: var(--site-gutter); }
#site-header .site-container, #site-footer .site-container,
#site-content > .site-section > .site-container { max-width: 100%; min-width: 0; }
/* Rotated decorative SVGs must stay inside their own sections. */
#site-content > .site-section:has(> svg) { overflow-x: clip; }
.location-wrap { width: min(1220px, calc(100% - var(--site-gutter) * 2)); margin-inline: auto; }
#site-content.location-area-page .location-hero-visual img,
#site-content .location-area-page .location-hero-visual img {
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: contain;
}
.gfield--type-honeypot[hidden] { display: none !important; }
/* The hero form sits on a dark background; the theme's choice labels are dark. */
.home-form .gfield--type-choice legend,
.home-form .gchoice .gform-field-label--type-inline { color: #fff !important; }
.home-form .gchoice { text-align: left; }
/* Match the proposal form: inline services and a taller message box. IDs outrank the template's 66px rules. */
#site-content .home-form .gfield--type-choice .gfield_checkbox { flex-direction: row !important; flex-wrap: wrap; justify-content: space-between; column-gap: 24px !important; row-gap: 20px !important; align-items: center; }
#site-content .home-form .gfield.gfield--input-type-textarea { height: auto !important; }
#site-content .home-form textarea#input_1_3 { height: 120px !important; min-block-size: 120px !important; }
@media (max-width: 991px) {
  #site-content .home-form .gfield--type-choice .gfield_checkbox { flex-direction: column !important; gap: 20px !important; align-items: flex-start; }
}
.gform_wrapper form[id^="gform_"] .gfield--type-submit {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
}
.gform_wrapper form[id^="gform_"] .gform_footer {
  justify-content: flex-end;
}
@media (min-width: 641px) {
  .gform_wrapper form[id^="gform_"] .gfield--type-submit.gfield--width-half {
    grid-column: 7 / -1;
  }
}
.avault-form-status { grid-column: 1 / -1; margin-block: 12px; }
.avault-form-status[data-error="true"] { color: #b42318; }
#site-content .gform_wrapper form[id^="gform_"] input[type="submit"],
#site-content .gform_wrapper form[id^="gform_"] button[type="submit"] {
  width: auto !important;
  min-width: 128px !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 44px;
  flex: 0 0 auto !important;
  margin: 0 0 0 auto !important;
  padding: 12px 28px !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
  border: 1px solid #881bcc !important;
  border-radius: 8px !important;
  background: #881bcc !important;
  color: #fff !important;
  box-shadow: none !important;
  cursor: pointer;
}
#site-content .gform_wrapper form[id^="gform_"] [type="submit"]:hover { background: #7115ab !important; }
#site-content .gform_wrapper form[id^="gform_"] [type="submit"]:disabled { opacity: .65; cursor: wait; }
#site-header .site-submenu-button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 0; background: transparent; border: 0; color: inherit; font: inherit; font-family: "NeueMontreal", sans-serif; text-align: left; cursor: pointer; }
#site-header .site-submenu-button svg { width: 14px; height: 14px; flex-shrink: 0; }
#site-header .site-submenu-button[aria-expanded="true"] svg { transform: rotate(180deg); }
#site-header .sub-menu[hidden] { display: none !important; }
#site-header .sub-menu:not([hidden]) { display: block !important; opacity: 1 !important; visibility: visible !important; transform: none !important; }
#site-header .site-nav-menu .sub-menu { max-height: min(70vh, 600px); overflow-y: auto; }
#site-header .site-mobile-menu-wrapper { overflow-y: auto; }
#site-header .site-mobile-menu .site-submenu-button { padding: 16px 30px; }
#site-header button:focus-visible, .gform_wrapper [type="submit"]:focus-visible { outline: 2px solid #b76be3; outline-offset: 4px; }
@media (min-width: 769px) and (max-width: 1280px) {
  .site-feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
  .site-feature-grid > .site-block { width: 100%; min-width: 0; margin-inline: 0; }
}
@media (max-width: 1100px) {
  .location-hero-grid, .location-context-grid { gap: 32px; }
}
