.elementor-kit-6{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.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:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --HCCream:#FCF7EF; --HCCreamDeep:#F4EBDC; --HCCreamWarm:#EDE1CE; --HCWhite:#FFFFFF; --HCNavy:#14263D; --HCNavyDeep:#0E1B2B; --HCNavyMid:#22384F; --HCBrown:#835D35; --HCBrownDeep:#68482A; --HCBrownLight:#AF8A5C; --HCInkSoft:#4E5C6B; --HCLine:#E5DACA; --HCLineStrong:#CFC0AA; --HCLineDark:#2B3F57; --HCOnDark:#F7F1E7; --HCOnDarkSoft:#AFBAC6; --HCScrim:rgba(14,27,43,0.52); --HCScrimSoft:rgba(14,27,43,0.22); --HCShadow:rgba(20,38,61,0.10); --HCClear:transparent; --HCFontSerif:Playfair Display; --HCFontSans:Work Sans; --HCFontMono:SFMono-Regular, Menlo, Consolas, monospace; --HCZ0:0px; --HCZ1:1px; --HCZ2:2px; --HCZ3:3px; --HCZ4:4px; --HCZ6:6px; --HCZ8:8px; --HCZ10:10px; --HCZ12:12px; --HCZ14:14px; --HCZ16:16px; --HCZ18:18px; --HCZ20:20px; --HCZ24:24px; --HCZ28:28px; --HCZ32:32px; --HCZ36:36px; --HCZ40:40px; --HCZ44:44px; --HCZ48:48px; --HCZ50:50px; --HCZ56:56px; --HCZ64:64px; --HCZ72:72px; --HCZ80:80px; --HCZ96:96px; --HCZ104:104px; --HCZ120:120px; --HCZ128:128px; --HCZ140:140px; --HCZ160:160px; --HCZ180:180px; --HCZ200:200px; --HCZ220:220px; --HCZ240:240px; --HCZ260:260px; --HCZ280:280px; --HCZ300:300px; --HCZ320:320px; --HCZ360:360px; --HCZ390:390px; --HCZ400:400px; --HCZ420:420px; --HCZ460:460px; --HCZ520:520px; --HCZ560:560px; --HCZ600:600px; --HCZ640:640px; --HCZ720:720px; --HCZ834:834px; --HCZ840:840px; --HCZ1200:1200px; --HCZ1440:1440px; --HCF11:11px; --HCF12:12px; --HCF13:13px; --HCF14:14px; --HCF15:15px; --HCF16:16px; --HCF17:17px; --HCF18:18px; --HCF20:20px; --HCF22:22px; --HCF24:24px; --HCF26:26px; --HCF28:28px; --HCF32:32px; --HCF36:36px; --HCF40:40px; --HCF44:44px; --HCF52:52px; --HCF60:60px; --HCF72:72px; --HCF88:88px; --HCPct100:100%; --HCPct50:50%; --HCLhTight:1.02; --HCLhHead:1.12; --HCLhSnug:1.34; --HCLhBody:1.65; --HCLhFlat:1; --HCLsTight:-0.02em; --HCLsNormal:0em; --HCLsWide:0.08em; --HCLsEyebrow:0.16em; --HCRSm:3px; --HCRMd:6px; --HCRPill:999px; --HCDurFast:0.18s; --HCDurMid:0.32s; --HCDurSlow:0.8s; --HCFsDisplay:72px; --HCFsDisplayTablet:60px; --HCFsDisplayMobile:40px; --HCFsH1:60px; --HCFsH1Tablet:44px; --HCFsH1Mobile:32px; --HCFsH2:44px; --HCFsH2Tablet:32px; --HCFsH2Mobile:28px; --HCFsH3:26px; --HCFsH3Tablet:22px; --HCFsH3Mobile:20px; --HCFsH4:20px; --HCFsH4Mobile:18px; --HCFsLead:20px; --HCFsLeadTablet:18px; --HCFsLeadMobile:17px; --HCFsBody:17px; --HCFsBodyTablet:16px; --HCFsSmall:14px; --HCFsSmallMobile:13px; --HCFsMicro:12px; --HCFsStat:52px; --HCFsStatTablet:40px; --HCFsStatMobile:36px; --HCFsQuote:20px; --HCFsQuoteTablet:18px; --HCFsNav:15px; --HCFsNavMobile:16px; --HCPadY:128px; --HCPadYTablet:80px; --HCPadYMobile:56px; --HCPadYSm:80px; --HCPadYSmTablet:56px; --HCPadYSmMobile:40px; --HCPadX:80px; --HCPadXTablet:40px; --HCPadXMobile:20px; --HCGapCol:80px; --HCGapColTablet:40px; --HCGapColMobile:28px; --HCGapCard:32px; --HCGapCardTablet:24px; --HCGapCardMobile:20px; --HCMaxW:1200px; --HCHeroH:640px; --HCHeroHTablet:460px; --HCHeroHMobile:320px; --HCMediaH:520px; --HCMediaHTablet:400px; --HCMediaHMobile:240px; --HCCardMediaH:260px; --HCCardMediaHTablet:200px; --HCGradScrim1:rgba(14,27,43,0.94); --HCGradScrim2:rgba(14,27,43,0.78); --HCGradScrim3:rgba(14,27,43,0.55); --HCFontScript:Dancing Script; }
/* Start custom CSS *//* ==========================================================================
   GRAVITY FORMS — HAPPY CAVEMAN SKIN
   --------------------------------------------------------------------------
   Elementor > Site Settings > Custom CSS. Applies to every Gravity Form
   on the site (Work With Us, Contact, and any form added later).

   All values come from the Happy Caveman design tokens — the --HC* variables
   in Elementor > Site Settings > Variables. Change a token there and the
   forms follow. Nothing here targets a field ID, so you can add, remove,
   reorder or rename fields in Gravity Forms without touching this.

   Two things to know if you ever edit it:
   - !important on the variables is deliberate. Gravity Forms writes its own
     defaults into an inline block using an #id .elementor-kit-6, which outranks any
     .elementor-kit-6 that can be written here.
   - The input and button rules set properties directly rather than only
     setting GF's variables, because the Astra theme styles form fields
     itself and would otherwise win.
   ========================================================================== */

/* ---- Gravity Forms theme variables ------------------------------------- */
.gform_wrapper.gform-theme--framework {
  --gf-color-primary: var(--HCBrown) !important;
  --gf-color-primary-darker: var(--HCBrownDeep) !important;
  --gf-color-primary-lighter: var(--HCBrownLight) !important;

  --gf-ctrl-label-font-family-primary: var(--HCFontSans) !important;
  --gf-ctrl-label-font-size-primary: var(--HCFsMicro) !important;
  --gf-ctrl-label-font-weight-primary: 600 !important;
  --gf-ctrl-label-letter-spacing-primary: var(--HCLsEyebrow) !important;
  --gf-ctrl-label-color-primary: var(--HCBrown) !important;
  --gf-ctrl-label-color-req: var(--HCBrownLight) !important;

  --gf-ctrl-label-font-family-secondary: var(--HCFontSans) !important;
  --gf-ctrl-label-color-secondary: var(--HCInkSoft) !important;

  --gf-ctrl-font-family: var(--HCFontSans) !important;
  --gf-ctrl-font-size: var(--HCFsBody) !important;
  --gf-ctrl-color: var(--HCNavy) !important;
  --gf-ctrl-bg-color: var(--HCWhite) !important;
  --gf-ctrl-border-color: var(--HCLineStrong) !important;
  --gf-ctrl-border-color-hover: var(--HCBrownLight) !important;
  --gf-ctrl-border-color-focus: var(--HCBrown) !important;
  --gf-ctrl-radius: var(--HCRSm) !important;

  --gf-ctrl-desc-font-family: var(--HCFontSans) !important;
  --gf-ctrl-desc-color: var(--HCInkSoft) !important;
}

/* ---- labels ------------------------------------------------------------ */
.gform_wrapper.gform-theme--framework .gfield_label {
  font-family: var(--HCFontSans);
  font-size: var(--HCFsMicro);
  font-weight: 600;
  letter-spacing: var(--HCLsEyebrow);
  text-transform: uppercase;
  color: var(--HCBrown);
}

.gform_wrapper.gform-theme--framework .gform-field-label--type-sub {
  font-family: var(--HCFontSans);
  font-size: var(--HCFsMicro);
  color: var(--HCInkSoft);
}

/* ---- inputs (Astra styles these directly, so set the properties) ------- */
.gform_wrapper.gform-theme--framework .gform_fields input:not([type="submit"]),
.gform_wrapper.gform-theme--framework .gform_fields textarea,
.gform_wrapper.gform-theme--framework .gform_fields select {
  font-family: var(--HCFontSans);
  font-size: var(--HCFsBody);
  line-height: var(--HCLhSnug);
  color: var(--HCNavy);
  background-color: var(--HCWhite);
  border: 1px solid var(--HCLineStrong);
  border-radius: var(--HCRSm);
  padding: var(--HCZ14) var(--HCZ16);
}

.gform_wrapper.gform-theme--framework .gform_fields input:not([type="submit"]):focus,
.gform_wrapper.gform-theme--framework .gform_fields textarea:focus,
.gform_wrapper.gform-theme--framework .gform_fields select:focus {
  border-color: var(--HCBrown);
  outline: none;
  box-shadow: none;
}

.gform_wrapper.gform-theme--framework .gform_fields textarea {
  min-height: var(--HCZ160);
}

/* ---- submit button ----------------------------------------------------- */
/* .gform-theme is included purely to add one class of specificity: Gravity
   Forms' own button rule matches at the same weight and loads later. */
.gform_wrapper.gform-theme.gform-theme--framework .gform_footer .gform_button {
  font-family: var(--HCFontSans);
  font-size: var(--HCFsSmall);
  font-weight: 600;
  letter-spacing: var(--HCLsWide);
  text-transform: uppercase !important;   /* GF sets this from its own local var */
  color: var(--HCCream);
  background-color: var(--HCBrown);
  border: 1px solid var(--HCBrown);
  border-radius: var(--HCRSm);
  padding: var(--HCZ16) var(--HCZ28);
}

.gform_wrapper.gform-theme.gform-theme--framework .gform_footer .gform_button:hover,
.gform_wrapper.gform-theme.gform-theme--framework .gform_footer .gform_button:focus {
  color: var(--HCCream);
  background-color: var(--HCBrownDeep);
  border-color: var(--HCBrownDeep);
}

/* ---- confirmation message --------------------------------------------- */
.gform_confirmation_message {
  font-family: var(--HCFontSans);
  font-size: var(--HCFsBody);
  line-height: var(--HCLhBody);
  color: var(--HCInkSoft);
  background-color: var(--HCCreamDeep);
  border: 1px solid var(--HCLineStrong);
  border-radius: var(--HCRSm);
  padding: var(--HCZ28);
}

/* Form 3 is the email-list signup in the footer, which sits on the dark navy
   ground. Its confirmation has to invert the treatment above: cream text and
   no cream panel. Scoped to form 3 so the light-ground forms (1 Speaking
   Inquiry, 2 Contact) keep the panel styling. */
#gform_confirmation_wrapper_3,
#gform_confirmation_wrapper_3 *,
.gform_confirmation_message_3.gform_confirmation_message,
.gform_confirmation_message_3.gform_confirmation_message * {
  color: var(--HCCream) !important;
}

#gform_confirmation_wrapper_3,
.gform_confirmation_message_3.gform_confirmation_message {
  background-color: transparent;
  border: 0;
  padding: 0;
}


/* Astra sets `body { overflow-x: hidden }`, which makes <body> a scroll
   container. Because <html> is what actually scrolls, a sticky element inside
   <body> has no scroll to react to and never sticks. `clip` prevents the same
   horizontal overflow WITHOUT creating a scroll container, so sticky works. */
body { overflow-x: clip; }

/* ---- STICKY HEADER -------------------------------------------------------
   This has to sit on Elementor's own location wrapper. The wrapper is exactly
   as tall as the header, so `position: sticky` on the container inside it
   would have no room to travel and would never stick.
   Sticks on desktop, tablet and mobile.
   -------------------------------------------------------------------------- */
.elementor-location-header {
  position: sticky;
  top: 0;
  z-index: 50;
}

/* keep it clear of the WordPress admin bar when logged in */
.admin-bar .elementor-location-header { top: 32px; }
@media screen and (max-width: 782px) {
  .admin-bar .elementor-location-header { top: 0; }
}

/* ---- testimonial carousel -------------------------------------------------
   Swiper marks the centred slide with .swiper-slide-active. Elementor exposes no
   control for per-slide emphasis, so the focus/fade treatment lives here.
   -------------------------------------------------------------------------- */
.hc-tcarousel .swiper-slide:not(.swiper-slide-active){opacity:.36;transform:scale(.94);transition:opacity .45s ease,transform .45s ease}
@media (max-width:767px){.hc-tcarousel .elementor-swiper-button.elementor-swiper-button-prev,.hc-tcarousel .elementor-swiper-button.elementor-swiper-button-next{display:none !important}}
.hc-tcarousel .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active{background-color:var(--HCBrown);opacity:1}/* End custom CSS */