.elementor-kit-8{--e-global-color-primary:#242A2C;--e-global-color-secondary:#F5F7F8;--e-global-color-text:#59656B;--e-global-color-accent:#167DA3;--e-global-color-teal:#167DA3;--e-global-color-teal_dark:#11688A;--e-global-color-teal_text:#15749A;--e-global-color-teal_on_dark:#4FA9CB;--e-global-color-white:#FFFFFF;--e-global-color-black:#1A1F21;--e-global-color-hairline:#EAEEF0;--e-global-color-hairline_dark:#4B5052;--e-global-color-body_on_dark:#C3C8CA;--e-global-color-grey_on_dark:#B4B8B9;--e-global-color-whatsapp:#25D366;--e-global-typography-primary-font-family:"Inter";--e-global-typography-primary-font-size:clamp(1.9rem, 1.2rem + 2.2vw, 2.75rem);--e-global-typography-primary-font-weight:700;--e-global-typography-primary-line-height:1.12em;--e-global-typography-primary-letter-spacing:-0.01em;--e-global-typography-secondary-font-family:"JetBrains Mono";--e-global-typography-secondary-font-size:0.8125rem;--e-global-typography-secondary-font-weight:400;--e-global-typography-secondary-text-transform:uppercase;--e-global-typography-secondary-line-height:1.4em;--e-global-typography-secondary-letter-spacing:0.16em;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:1.0625rem;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.65em;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-size:1rem;--e-global-typography-accent-font-weight:700;--e-global-typography-accent-line-height:1.2em;--e-global-typography-gi_h1-font-family:"Inter";--e-global-typography-gi_h1-font-size:clamp(2.35rem, 1.3rem + 3.3vw, 3.85rem);--e-global-typography-gi_h1-font-weight:700;--e-global-typography-gi_h1-line-height:1.07em;--e-global-typography-gi_h1-letter-spacing:-0.015em;--e-global-typography-gi_h2-font-family:"Inter";--e-global-typography-gi_h2-font-size:clamp(1.9rem, 1.2rem + 2.2vw, 2.75rem);--e-global-typography-gi_h2-font-weight:700;--e-global-typography-gi_h2-line-height:1.12em;--e-global-typography-gi_h2-letter-spacing:-0.01em;--e-global-typography-gi_h3-font-family:"Inter";--e-global-typography-gi_h3-font-size:clamp(1.45rem, 1.1rem + 1vw, 1.9rem);--e-global-typography-gi_h3-font-weight:700;--e-global-typography-gi_h3-line-height:1.18em;--e-global-typography-gi_h3-letter-spacing:-0.005em;--e-global-typography-gi_title-font-family:"Inter";--e-global-typography-gi_title-font-size:1.25rem;--e-global-typography-gi_title-font-weight:700;--e-global-typography-gi_title-line-height:1.3em;--e-global-typography-gi_lead-font-family:"Inter";--e-global-typography-gi_lead-font-size:clamp(1.0625rem, 1rem + 0.3vw, 1.25rem);--e-global-typography-gi_lead-font-weight:400;--e-global-typography-gi_lead-line-height:1.6em;--e-global-typography-gi_body-font-family:"Inter";--e-global-typography-gi_body-font-size:1.0625rem;--e-global-typography-gi_body-font-weight:400;--e-global-typography-gi_body-line-height:1.65em;--e-global-typography-gi_small-font-family:"Inter";--e-global-typography-gi_small-font-size:1rem;--e-global-typography-gi_small-font-weight:400;--e-global-typography-gi_small-line-height:1.6em;--e-global-typography-gi_small_bold-font-family:"Inter";--e-global-typography-gi_small_bold-font-size:1rem;--e-global-typography-gi_small_bold-font-weight:700;--e-global-typography-gi_small_bold-line-height:1.5em;--e-global-typography-gi_caption-font-family:"Inter";--e-global-typography-gi_caption-font-size:0.875rem;--e-global-typography-gi_caption-font-weight:400;--e-global-typography-gi_caption-line-height:1.5em;--e-global-typography-gi_link-font-family:"Inter";--e-global-typography-gi_link-font-size:1.0625rem;--e-global-typography-gi_link-font-weight:700;--e-global-typography-gi_link-line-height:1.5em;--e-global-typography-gi_nav-font-family:"Inter";--e-global-typography-gi_nav-font-size:1.0625rem;--e-global-typography-gi_nav-font-weight:400;--e-global-typography-gi_nav-line-height:1.3em;--e-global-typography-gi_mono_sm-font-family:"JetBrains Mono";--e-global-typography-gi_mono_sm-font-size:0.8125rem;--e-global-typography-gi_mono_sm-font-weight:400;--e-global-typography-gi_mono_sm-line-height:1.4em;--e-global-typography-gi_mono_sm-letter-spacing:0.02em;--e-global-typography-gi_mono_num-font-family:"JetBrains Mono";--e-global-typography-gi_mono_num-font-size:0.9375rem;--e-global-typography-gi_mono_num-font-weight:400;--e-global-typography-gi_mono_num-line-height:1.3em;--e-global-typography-gi_badge-font-family:"JetBrains Mono";--e-global-typography-gi_badge-font-size:0.75rem;--e-global-typography-gi_badge-font-weight:500;--e-global-typography-gi_badge-text-transform:uppercase;--e-global-typography-gi_badge-line-height:1.2em;--e-global-typography-gi_badge-letter-spacing:0.1em;--e-global-typography-gi_tag-font-family:"JetBrains Mono";--e-global-typography-gi_tag-font-size:0.625rem;--e-global-typography-gi_tag-font-weight:400;--e-global-typography-gi_tag-text-transform:uppercase;--e-global-typography-gi_tag-line-height:1.2em;--e-global-typography-gi_tag-letter-spacing:0.14em;background-color:#FFFFFF;color:#59656B;font-family:"Inter", Sans-serif;font-size:1.0625rem;font-weight:400;line-height:1.65em;}.elementor-kit-8 button,.elementor-kit-8 input[type="button"],.elementor-kit-8 input[type="submit"],.elementor-kit-8 .elementor-button{background-color:#167DA3;font-family:"Inter", Sans-serif;font-size:0.9375rem;font-weight:700;line-height:1.2em;color:#FFFFFF;border-radius:2px 2px 2px 2px;padding:16px 22px 16px 22px;}.elementor-kit-8 button:hover,.elementor-kit-8 button:focus,.elementor-kit-8 input[type="button"]:hover,.elementor-kit-8 input[type="button"]:focus,.elementor-kit-8 input[type="submit"]:hover,.elementor-kit-8 input[type="submit"]:focus,.elementor-kit-8 .elementor-button:hover,.elementor-kit-8 .elementor-button:focus{background-color:#11688A;color:#FFFFFF;}.elementor-kit-8 e-page-transition{background-color:#FFBC7D;}.elementor-kit-8 a{color:#167DA3;}.elementor-kit-8 a:hover{color:#11688A;}.elementor-kit-8 h1{color:#242A2C;font-family:"Inter", Sans-serif;font-size:clamp(2.125rem, 4.5vw, 4rem);font-weight:700;line-height:1.04em;letter-spacing:-0.028em;}.elementor-kit-8 h2{color:#242A2C;font-family:"Inter", Sans-serif;font-size:clamp(1.75rem, 3.4vw, 2.75rem);font-weight:700;line-height:1.1em;letter-spacing:-0.02em;}.elementor-kit-8 h3{color:#242A2C;font-family:"Inter", Sans-serif;font-size:1.125rem;font-weight:700;line-height:1.25em;}.elementor-kit-8 h4{color:#242A2C;font-family:"Inter", Sans-serif;font-size:1.1875rem;font-weight:700;line-height:1.25em;}.elementor-kit-8 input:not([type="button"]):not([type="submit"]),.elementor-kit-8 textarea,.elementor-kit-8 .elementor-field-textual{font-family:"Inter", Sans-serif;font-size:1rem;font-weight:400;line-height:1.5em;color:#242A2C;background-color:#FFFFFF;border-style:solid;border-width:1px 1px 1px 1px;border-color:#EAEEF0;border-radius:3px 3px 3px 3px;padding:12px 14px 12px 14px;}.elementor-kit-8 input:focus:not([type="button"]):not([type="submit"]),.elementor-kit-8 textarea:focus,.elementor-kit-8 .elementor-field-textual:focus{border-style:solid;border-color:#242A2C;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;--container-default-padding-top:0px;--container-default-padding-right:24px;--container-default-padding-bottom:0px;--container-default-padding-left:24px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:899px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-8{--e-global-typography-primary-line-height:1.22em;--e-global-typography-secondary-line-height:1.5em;--e-global-typography-text-line-height:1.7em;--e-global-typography-gi_h1-line-height:1.15em;--e-global-typography-gi_h2-line-height:1.22em;--e-global-typography-gi_h3-line-height:1.28em;--e-global-typography-gi_title-font-size:1.15rem;--e-global-typography-gi_lead-line-height:1.68em;--e-global-typography-gi_body-line-height:1.7em;--e-global-typography-gi_small-line-height:1.6em;--e-global-typography-gi_caption-line-height:1.58em;--e-global-typography-gi_mono_sm-line-height:1.5em;--e-global-typography-gi_badge-line-height:1.45em;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;--container-default-padding-top:0px;--container-default-padding-right:var(--gi-gutter-r);--container-default-padding-bottom:0px;--container-default-padding-left:var(--gi-gutter-l);}}/* Start custom CSS *//* =====================================================================
   GeoInspect site CSS
   Only for things Elementor cannot do natively. Colours use the
   Elementor Global Colours (Site Settings > Global Colours), so a
   colour change there updates everything below.
   ===================================================================== */

/* 1. Anchor offset so headings never hide under the sticky header.
      (Smooth scrolling is done by Elementor itself; do not add
      scroll-behavior: smooth here, it breaks Elementor's menu scrolling.) */
.gi-section { scroll-margin-top: 100px; }
@media (min-width: 768px) and (max-width: 899px) { .gi-section { scroll-margin-top: 80px; } }
@media (max-width: 767px) { .gi-section { scroll-margin-top: 72px; } }

/* 2. Sticky header (CSS only, no script) */
.elementor-location-header { position: sticky; top: 0; z-index: 999; }
.admin-bar .elementor-location-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .elementor-location-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .elementor-location-header { top: 0; } }

/* 3. Eyebrow labels (mono, uppercase). Add class gi-eyebrow--dash for the short teal dash */
.gi-eyebrow .elementor-heading-title,
.gi-upper .elementor-heading-title { text-transform: uppercase; letter-spacing: .16em; }
.gi-eyebrow--dash .elementor-heading-title::before {
  content: ""; display: inline-block; width: 20px; height: 2px; margin: 0 12px 0 0;
  vertical-align: middle; position: relative; top: -2px; background: var(--e-global-color-teal);
}

/* 4. Chips (Harvestcore building blocks) */
.gi-chip .elementor-heading-title {
  display: inline-block; padding: 5px 10px; line-height: 1.3; border-radius: 3px;
  border: 1px solid var(--e-global-color-hairline); background: var(--e-global-color-secondary);
}

/* 5. Underlined text link (harvestcore.live) */
.gi-textlink a { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
.gi-textlink a:hover { color: var(--e-global-color-teal_dark); }

/* 6. Status badges (Sound recognition). To change a badge, edit its CSS class:
      gi-badge--working = solid teal | gi-badge--dev = teal outline | gi-badge--next = dashed grey */
.gi-badge .elementor-heading-title {
  display: inline-block; padding: 5px 9px 4px; border-radius: 2px; line-height: 1.2;
  text-transform: uppercase; letter-spacing: .1em; border: 1px solid transparent;
}
.gi-badge--working .elementor-heading-title { background: var(--e-global-color-teal); border-color: var(--e-global-color-teal); }
.gi-badge--dev .elementor-heading-title { border-color: var(--e-global-color-teal_on_dark); }
.gi-badge--next .elementor-heading-title { border: 1px dashed var(--e-global-color-grey_on_dark); }

/* 7. Photos: consistent crops (swap the image, the crop stays) */
.gi-photo img { display: block; width: 100%; height: auto; border-radius: 4px; }
.gi-photo--1610 img { aspect-ratio: 16 / 10; object-fit: cover; }
.gi-photo--heli img { aspect-ratio: 900 / 462; object-fit: cover; }
.gi-photo-node img { display: block; height: auto; margin: 0 auto; }

/* 8. Project images + the deletable "Illustrative" tag */
.gi-illustration-frame { position: relative; overflow: hidden; border-radius: 4px; border: 1px solid var(--e-global-color-hairline); background: var(--e-global-color-secondary); }
.gi-illustration img { display: block; width: 100%; height: auto; }
.gi-illustrative-tag { position: absolute; left: 8px; bottom: 6px; }
.gi-illustrative-tag .elementor-heading-title { letter-spacing: .14em; }

/* 9. Featured project: status dot in the facts table */
.gi-status::before {
  content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 9px; border-radius: 50%;
  vertical-align: 1px; background: var(--e-global-color-teal_on_dark);
}
.gi-featured { overflow: hidden; }

/* 10. Text editor paragraphs: spacing comes from the widget margins */
.elementor-widget-text-editor p { margin-top: 0; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* 11. Links on the teal contact section */
.gi-on-teal-link a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.gi-on-teal-link a:hover { text-decoration-thickness: 2px; }

/* 12. Contact form: mono uppercase labels, clear focus */
.gi-form .elementor-field-label { text-transform: uppercase; letter-spacing: .12em; }
.gi-form .elementor-field-group .elementor-field:focus { outline: 2px solid var(--e-global-color-primary); outline-offset: 1px; }
.gi-form .elementor-message { color: #fff; }

/* 13. Pending client placeholders: hidden on the site, outlined in the editor */
.elementor-editor-active .gi-pending { outline: 1px dashed #d98b00; outline-offset: 4px; }

/* 14. Visible keyboard focus everywhere */
a:focus-visible, button:focus-visible, .elementor-button:focus-visible { outline: 2px solid var(--e-global-color-teal); outline-offset: 3px; }
#contact a:focus-visible, #contact button:focus-visible { outline-color: #fff; }

/* 15. Mobile menu */
.gi-nav .elementor-menu-toggle { min-width: 44px; min-height: 44px; justify-content: center; }
.gi-nav .elementor-nav-menu--dropdown { border-top: 1px solid var(--e-global-color-hairline); }

/* 16. Platform cards: light border with a 3 px teal top edge */
.gi-card-topline { border-top-color: var(--e-global-color-teal) !important; }

/* 17. Footer menu wraps neatly on small screens */
@media (max-width: 1024px) {
  .gi-nav--footer .elementor-nav-menu { flex-wrap: wrap; gap: 6px 24px; justify-content: flex-start; }
  .gi-nav--footer .elementor-nav-menu > li, .gi-nav--footer .elementor-nav-menu > li > a { margin: 0 !important; }
}

/* 18. Download Whitepapers (hero). Without JavaScript the panel is a plain,
       always-visible list of the two PDFs. With JavaScript (html.gi-has-js, set in
       the page head before first paint) it starts closed, so nothing shifts on load;
       the site script toggles .is-open on the .gi-dl container. */
.gi-dl { position: relative; z-index: 30; }
.gi-dl-trigger .elementor-button-text::after {
  content: ""; display: inline-block; width: 7px; height: 7px; margin-left: 12px;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: translateY(-3px) rotate(45deg); transition: transform 200ms cubic-bezier(0.22, 1, 0.36, 1);
}
.gi-dl-trigger .elementor-button[aria-expanded="true"] .elementor-button-text::after { transform: translateY(1px) rotate(225deg); }
.gi-dl-panel {
  width: 100%; max-width: 360px; margin-top: 8px; overflow: hidden;
  background: #fff; border: 1px solid var(--e-global-color-hairline); border-radius: 6px;
  box-shadow: 0 14px 34px rgba(36, 42, 44, .22);
}
.gi-dl-item { color: inherit; text-decoration: none; transition: background-color 150ms ease; }
.gi-dl-item + .gi-dl-item { border-top: 1px solid var(--e-global-color-hairline); }
.gi-dl-item:hover, .gi-dl-item:focus-visible { background-color: var(--e-global-color-secondary); }
.gi-dl-item:hover .gi-dl-title .elementor-heading-title, .gi-dl-item:focus-visible .gi-dl-title .elementor-heading-title { color: var(--e-global-color-teal); }
.gi-dl-item:focus-visible { outline: 2px solid var(--e-global-color-teal); outline-offset: -2px; }
.gi-dl-ico, .gi-dl-arrow { line-height: 0; }
/* Closed/open states (desktop and tablet: overlays below the button) */
.gi-has-js .gi-dl .gi-dl-panel {
  position: absolute; top: 100%; left: 0; width: 340px;
  opacity: 0; visibility: hidden; transform: translate3d(0, 6px, 0);
  transition: opacity 200ms ease, transform 200ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 200ms;
}
.gi-has-js .gi-dl.is-open .gi-dl-panel { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
/* Phones: the panel sits in the page flow, full width, and pushes content down */
@media (max-width: 767px) {
  .gi-has-js .gi-dl .gi-dl-panel { position: static; width: 100%; max-width: none; display: none; transform: none; }
  .gi-has-js .gi-dl.is-open .gi-dl-panel { display: block; animation: gi-dl-in 200ms ease both; }
  .gi-dl-trigger .elementor-button { width: 100%; justify-content: center; min-height: 48px; }
}
@keyframes gi-dl-in { from { opacity: 0; } to { opacity: 1; } }
.gi-dl-noanim .gi-dl-panel { transition: none !important; }
@media (prefers-reduced-motion: reduce) {
  .gi-has-js .gi-dl .gi-dl-panel, .gi-dl-trigger .elementor-button-text::after { transition: none !important; animation: none !important; }
}

/* 19. Dashboard preview: minimal browser frame (three neutral dots on a light bar) */
.gi-browser-frame {
  border: 1px solid var(--e-global-color-hairline); border-radius: 6px; overflow: hidden;
  background: radial-gradient(circle at 16px 14px, #C9CFD2 4px, transparent 4.5px),
              radial-gradient(circle at 32px 14px, #C9CFD2 4px, transparent 4.5px),
              radial-gradient(circle at 48px 14px, #C9CFD2 4px, transparent 4.5px),
              var(--e-global-color-secondary);
}
.gi-browser-frame .elementor-widget-image img { display: block; width: 100%; height: auto; border-top: 1px solid var(--e-global-color-hairline); }
.gi-browser-frame .elementor-widget-image .elementor-widget-container { border-radius: 0; }
.gi-browser-frame .elementor-widget-image a { display: block; }

/* 20. Mobile spacing (phones only, <= 767 px). The page gutter is defined ONCE here
       and used by every section, the header and the footer (Elementor > Mobile >
       Padding shows var(--gi-gutter-l) / var(--gi-gutter-r)). To change the side
       margins site-wide, change the clamp() below. Card padding is set per card in
       Elementor (Mobile). Rule: never add extra padding inside a padded container. */
:root { --gi-gutter: clamp(20px, 6.4vw, 28px); }
@media (max-width: 767px) {
  :root {
    --gi-gutter-l: max(var(--gi-gutter), env(safe-area-inset-left));
    --gi-gutter-r: max(var(--gi-gutter), env(safe-area-inset-right));
  }
  /* Long words, e-mail addresses and URLs wrap instead of running to the edge */
  .elementor-widget-heading .elementor-heading-title, .elementor-widget-text-editor { overflow-wrap: break-word; }
  .gi-textlink a, .gi-on-teal-link a { overflow-wrap: anywhere; }
}

/* Footer text links (Terms & Conditions): light grey, underlined, white on hover */
.gi-footer-link a { color: var(--e-global-color-body_on_dark); text-decoration: underline; text-underline-offset: 3px; }
.gi-footer-link a:hover { color: #fff; }
.elementor-location-footer .gi-footer-link a:focus-visible { outline-color: #fff; }

/* 21. Floating WhatsApp button + chat window (Elementor container "WhatsApp (floating button)",
       last container on the home page). Styled like the previous site's chat widget.
       The green is the Global Colour "WhatsApp green" (Site Settings > Global Colours).
       Texts, the pre-filled message link and the icons are edited in Elementor.
       Sits above page content, below the header / mobile menu (z-index 999), and drops
       under the Download Whitepapers panel while that is open. No third-party script. */
.gi-wa.e-con {
  position: fixed; right: 24px; bottom: max(24px, calc(env(safe-area-inset-bottom) + 16px)); z-index: 900;
  --width: auto; width: auto; max-width: calc(100vw - 32px); --min-height: 0; min-height: 0;
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; padding: 0; margin: 0;
  display: flex; flex-direction: column; align-items: flex-end; gap: 16px; background: none; pointer-events: none;
}
.gi-wa.e-con > .e-con { pointer-events: auto; }
/* Round button */
.gi-wa-float.e-con {
  --width: 60px; width: 60px; height: 60px; --min-height: 60px; min-height: 60px; flex: none; padding: 0;
  display: flex; align-items: center; justify-content: center; border-radius: 50%;
  background-color: var(--e-global-color-whatsapp); box-shadow: 0 6px 18px rgba(0, 0, 0, .22);
  transition: transform 200ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 200ms ease;
}
.gi-wa-float.e-con:hover { transform: translate3d(0, -3px, 0); box-shadow: 0 10px 24px rgba(0, 0, 0, .26); }
.gi-wa-float.e-con:focus-visible { outline: 3px solid var(--e-global-color-primary); outline-offset: 3px; box-shadow: 0 0 0 3px #fff, 0 6px 18px rgba(0, 0, 0, .22); }
.gi-wa-float .elementor-icon { color: #fff; font-size: 34px; line-height: 0; }
.gi-wa-float .elementor-icon svg { width: 34px; height: 34px; fill: #fff; }
/* Chat window */
.gi-wa-bubble.e-con {
  --width: 380px; width: 380px; max-width: calc(100vw - 32px); gap: 0; overflow: hidden; border-radius: 24px;
  background: color-mix(in srgb, var(--e-global-color-whatsapp) 7%, #fff); box-shadow: 0 12px 40px rgba(0, 0, 0, .2);
  opacity: 0; visibility: hidden; transform: translate3d(0, 8px, 0) scale(.98); transform-origin: 100% 100%;
  transition: opacity 240ms ease, transform 240ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 240ms;
}
.gi-wa.is-open .gi-wa-bubble.e-con { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.gi-wa-head.e-con { background: var(--e-global-color-whatsapp); padding: 14px 14px 14px 20px; flex-wrap: nowrap; }
.gi-wa-head-ico .elementor-icon { color: #fff; font-size: 30px; line-height: 0; }
.gi-wa-head-ico .elementor-icon svg { width: 30px; height: 30px; fill: #fff; }
.gi-wa-head-title.elementor-widget { flex: 1 1 auto; }
.gi-wa .gi-wa-head-title .elementor-heading-title { color: #fff; font-family: Inter, sans-serif !important; font-size: 20px !important; font-weight: 700 !important; line-height: 1 !important; letter-spacing: 0 !important; }
.gi-wa-close .elementor-button {
  display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; border-radius: 50%;
  background: rgba(0, 0, 0, .18) !important; color: #fff !important; font-size: 26px !important; font-weight: 400 !important; line-height: 1 !important;
}
.gi-wa-close .elementor-button:hover { background: rgba(0, 0, 0, .3) !important; }
.gi-wa-close .elementor-button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.gi-wa-body.e-con { padding: 22px 20px 20px 26px; gap: 26px; }
/* Speech bubble with a tail on the left */
.gi-wa-msg.elementor-widget {
  align-self: flex-start; --container-widget-width: auto; width: auto; max-width: 85%; position: relative;
  background: #fff; border-radius: 20px; padding: 14px 22px; box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
  color: #3B4A54; font-family: Inter, sans-serif; font-size: 16px; line-height: 1.6;
}
.gi-wa-msg.elementor-widget::before {
  content: ""; position: absolute; left: -9px; bottom: 16px; width: 14px; height: 14px; background: #fff;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
.gi-wa-msg p { margin: 0; }
.gi-wa-msg img.emoji { width: 1.15em !important; height: 1.15em !important; vertical-align: -0.2em !important; }
/* "Open chat" pill with the send icon */
.gi-wa-open.elementor-widget { align-self: flex-end; --container-widget-width: auto; width: auto; }
.gi-wa-open .elementor-button {
  display: inline-flex; align-items: center; border-radius: 999px; padding: 14px 18px 14px 26px;
  background-color: var(--e-global-color-whatsapp); color: #fff; font-family: Inter, sans-serif; font-size: 17px; font-weight: 700;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .14); transition: filter 150ms ease;
}
.gi-wa-open .elementor-button-content-wrapper { gap: 14px; align-items: center; }
.gi-wa-open .elementor-button-icon { font-size: 26px; line-height: 0; }
.gi-wa-open .elementor-button-icon svg { width: 26px; height: 26px; fill: #fff; }
.gi-wa-open .elementor-button:hover { filter: brightness(.94); color: #fff; }
.gi-wa-open .elementor-button:focus-visible { outline: 3px solid var(--e-global-color-primary); outline-offset: 3px; }
.gi-wa.gi-wa--under { z-index: 20; }
.gi-wa.gi-wa--away { opacity: 0; visibility: hidden; }
@media (max-width: 767px) {
  .gi-wa.e-con { right: max(16px, env(safe-area-inset-right)); bottom: calc(16px + env(safe-area-inset-bottom)); }
  .gi-wa-float.e-con { --width: 56px; width: 56px; height: 56px; --min-height: 56px; min-height: 56px; }
}
/* Room under the footer (phones and tablets) so the button never covers the legal / Terms links at the end of the page */
@media (max-width: 1024px) { .elementor-location-footer > .e-con:last-child { padding-bottom: calc(88px + env(safe-area-inset-bottom)) !important; } }
@media (prefers-reduced-motion: reduce) { .gi-wa-float.e-con, .gi-wa-bubble.e-con, .gi-wa-open .elementor-button { transition: none !important; } .gi-wa-float.e-con:hover { transform: none; } }

/* 22. Bigger tap areas for stand-alone text links (Harvestcore, dashboard, e-mail, Terms).
       The padding enlarges the clickable area to 44 px tall; the negative margin keeps the layout unchanged. */
.gi-textlink a, .gi-on-teal-link a, .gi-footer-link a { display: inline-block; padding-block: 12px; margin-block: -12px; }/* End custom CSS */