.elementor-widget-icon-list .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-icon-list .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-icon-list .elementor-icon-list-text{color:var( --e-global-color-secondary );}.elementor-1643 .elementor-element.elementor-element-9b26615 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(10px/2);}.elementor-1643 .elementor-element.elementor-element-9b26615 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(10px/2);}.elementor-1643 .elementor-element.elementor-element-9b26615 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(10px/2);}.elementor-1643 .elementor-element.elementor-element-9b26615 .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-10px/2);}.elementor-1643 .elementor-element.elementor-element-9b26615 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-10px/2);}.elementor-1643 .elementor-element.elementor-element-9b26615 .elementor-icon-list-icon i{color:var( --e-global-color-text );transition:color 0.3s;}.elementor-1643 .elementor-element.elementor-element-9b26615 .elementor-icon-list-icon svg{fill:var( --e-global-color-text );transition:fill 0.3s;}.elementor-1643 .elementor-element.elementor-element-9b26615{--e-icon-list-icon-size:1.25rem;--icon-vertical-offset:0px;}.elementor-1643 .elementor-element.elementor-element-9b26615 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-1643 .elementor-element.elementor-element-9b26615 .elementor-icon-list-item > a{font-family:"AvenirNextProRegular", Sans-serif;font-size:1.1rem;font-weight:400;line-height:1.6em;}.elementor-1643 .elementor-element.elementor-element-9b26615 .elementor-icon-list-text{color:var( --e-global-color-c35165e );transition:color 0.3s;}.elementor-1643 .elementor-element.elementor-element-7c9dec4{background-color:var( --e-global-color-ac17890 );border-radius:16px 16px 16px 16px;}@media(max-width:960px){.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-size:var( --e-global-typography-text-font-size );}.elementor-1643 .elementor-element.elementor-element-9b26615 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-1643 .elementor-element.elementor-element-9b26615 .elementor-icon-list-item > a{line-height:1.36em;}}@media(max-width:767px){.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-size:var( --e-global-typography-text-font-size );}}/* Start custom CSS for html, class: .elementor-element-7c9dec4 *//* =========================================================
   HubSpot contact form (Elementor widget Custom CSS)
   The widget has the CSS ID: hubspot_contact
   ========================================================= */

/* Flag emoji polyfill for Windows (only affects flag characters) */
@font-face {
  font-family: "Twemoji Country Flags";
  unicode-range: U+1F1E6-1F1FF, U+1F3F4, U+E0062-E0063, U+E0065, U+E0067,
    U+E006C, U+E006E, U+E0073-E0074, U+E0077, U+E007F;
  src: url("https://cdn.jsdelivr.net/npm/country-flag-emoji-polyfill@0.1/dist/TwemojiCountryFlags.woff2") format("woff2");
  font-display: swap;
}

/* Host widget: variables, full width, font */
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact {
  --gbi-blue: #3340a3;
  --gbi-blue-dark: #2a3589;
  --gbi-field: #e6e6e6;
  --gbi-text: #333;
  --gbi-placeholder: #777;

  width: 100%;
  max-width: none;
  align-self: stretch;
  font-family: var(--e-global-typography-text-font-family), sans-serif !important;
}

.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-FormWrapper,
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-FormWrapper * {
  font-family: var(--e-global-typography-text-font-family), sans-serif !important;
}

/* Card */
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-FormWrapper {
  width: 100%;
  padding: 6px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 40px 90px -50px rgba(0, 0, 0, 0.3);
  box-sizing: border-box;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-FormWrapper *,
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-FormWrapper *::before,
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-FormWrapper *::after {
  box-sizing: border-box;
}

/* Layout */
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-Step__Content {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-Row {
  display: flex;
  gap: 10px;
  margin: 0;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-Row > div {
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
}

/* Visually hidden labels (placeholders replace them) */
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-FieldLabel {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* Checkbox consent: its label holds the checkbox AND the visible text, so it
   must not use the hidden-label rule above. */
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-CheckboxField .hsfc-FieldLabel {
  position: static;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: normal;
  font-size: 13px;
  line-height: 1.5;
  color: var(--gbi-text);
  cursor: pointer;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-CheckboxInput {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin: 2px 0 0;
  accent-color: var(--gbi-blue);
}

/* ---------- Legal consent / privacy block ----------
   HubSpot renders this as .hsfc-DataPrivacyField with stacked rows:
   intro text, checkbox, privacy policy line, processing line.
   Stack them with even spacing and bring the text down to a small,
   muted size that matches the checkbox label. */
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-DataPrivacyField {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: 6px;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-DataPrivacyField .hsfc-Row {
  gap: 0;
  margin: 0;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-RichText {
  margin: 0 !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  color: #595959 !important;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-RichText a {
  color: var(--gbi-blue) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-RichText a:hover {
  color: var(--gbi-blue-dark) !important;
}

/* Text inputs */
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-TextInput {
  display: block;
  width: 100%;
  height: 44px;
  margin: 0;
  padding: 0 18px;
  background: var(--gbi-field);
  border: 1px solid transparent;
  border-radius: 999px;
  font: inherit;
  font-size: 15px;
  color: var(--gbi-text);
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-TextInput::placeholder,
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-TextareaInput::placeholder {
  color: var(--gbi-placeholder);
  opacity: 1;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-TextInput:focus,
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-TextareaInput:focus {
  outline: none;
  border-color: var(--gbi-blue);
  background: #ececec;
}

/* Textarea */
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-TextareaInput {
  display: block;
  width: 100%;
  height: 108px;
  margin: 0;
  padding: 14px 18px;
  background: var(--gbi-field);
  border: 1px solid transparent;
  border-radius: 20px;
  font: inherit;
  font-size: 15px;
  color: var(--gbi-text);
  resize: none;
  box-shadow: none;
}

/* ---------- Phone field ---------- */
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-PhoneInput {
  position: relative;
}

/* Flag + caret sit on top of the input, on the left */
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-PhoneInput .hsfc-PhoneInput__FlagAndCaret {
  position: absolute;
  left: 16px;
  top: 0;
  bottom: 0;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none;
  cursor: pointer;
  z-index: 1;
}

/* The flag is a plain emoji character (not an image). Windows has no flag
   glyphs, so it falls back to letters ("IN", "US"). The Twemoji Country Flags
   font (declared at the top) supplies the glyphs; unicode-range means it only
   affects flag characters. Placed after the generic font rule so it wins. */
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-PhoneInput .hsfc-PhoneInput__FlagAndCaret__Flag {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  font-family: "Twemoji Country Flags", sans-serif !important;
  font-size: 18px;
  line-height: 1;
  background: transparent;
  border: 0;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-PhoneInput__FlagAndCaret__Flag img {
  display: block;
  width: 18px;
  height: 18px;
  margin: 0;
  object-fit: contain;
}

.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-PhoneInput__FlagAndCaret__Caret {
  flex: 0 0 auto;
  width: 0;
  height: 0;
  margin: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid var(--gbi-placeholder);
  border-bottom: 0;
}

/* Space between the flag + caret and the typed number.
   Flag block ends at about 49px (16 left + ~19 flag + 6 gap + 8 caret),
   so 60px leaves a ~10px gap. Raise or lower this one number to adjust.
   Higher specificity + !important so the generic .hsfc-TextInput padding
   (18px) can never win. */
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-PhoneInput > input.hsfc-TextInput[type="tel"] {
  padding-left: 60px !important;
}

/* Country list */
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-DropdownOptions {
  position: absolute;
  top: 48px;
  left: 0;
  width: 300px;
  max-width: 80vw;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
  z-index: 20;
  overflow: hidden;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-DropdownOptions__Search {
  padding: 8px;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-DropdownOptions__Search .hsfc-TextInput {
  height: 36px;
  font-size: 14px;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-DropdownOptions__List {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 220px;
  overflow-y: auto;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-DropdownOptions__List__ListItem {
  font-family: var(--e-global-typography-text-font-family), "Twemoji Country Flags", sans-serif !important;
  padding: 8px 14px;
  font-size: 14px;
  color: var(--gbi-text);
  cursor: pointer;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-DropdownOptions__List__ListItem:hover,
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-DropdownOptions__List__ListItem--selected {
  background: #f0f1f8;
}

/* Submit */
/* Remove the extra space above the button. The form's only spacing is the
   10px flex gap between rows; HubSpot's default margins/padding on the
   checkbox row and the navigation row are cleared here. */
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-CheckboxField,
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-NavigationRow {
  margin: 0 !important;
  padding: 0 !important;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-NavigationRow__Alerts {
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
}
/* Collapses when empty; error messages still appear after a failed submit */
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-NavigationRow__Alerts:empty {
  display: none;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-NavigationRow__Buttons {
  margin: 0;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-Button {
  display: block;
  width: 100%;
  height: 48px;
  margin-top: 28px; /* + 10px row gap = ~38px above Submit. Adjust this number. */
  padding: 0 24px;
  background: var(--gbi-blue);
  color: #fff;
  border: 0;
  border-radius: 999px;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease;
}
.elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-Button:hover {
  background: var(--gbi-blue-dark);
}

/* Mobile */
@media (max-width: 480px) {
  .elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-FormWrapper { padding: 24px; }
  .elementor-1643 .elementor-element.elementor-element-7c9dec4#hubspot_contact .hsfc-Row { flex-direction: column; }
}/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'AvenirNextProRegular';
	font-style: normal;
	font-weight: normal;
	font-display: auto;
	src: url('https://gbi.co/wp-content/uploads/2026/09/AvenirNextProRegular.woff') format('woff');
}
/* End Custom Fonts CSS */