:root{--page-title-display:none;}/* Start custom CSS */main.e-div-block-base { --ecs-primary: #1E4397; --ecs-accent: #F5B82E; --ecs-on-accent: #231F20; --ecs-ink: #231F20; --ecs-muted: #6E6E6E; --ecs-field: #F8F8F8; --ecs-font: Montserrat; }
/* ECS LP page CSS (pasted into each page's Elementor custom_css by page_css.py, which prepends the brand's --ecs-* tokens).
   Motion: CSS only (transform/opacity), H1 never fades, scroll reveals via native scroll-driven animations, off under reduced motion. Selectors rely on the shared gen_lp.py structure. */
@keyframes ecs-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes ecs-slide { from { transform: translateY(16px); } to { transform: none; } }
@keyframes ecs-reveal { from { opacity: .35; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes ecs-stick { to { padding-top: 8px; padding-bottom: 8px; } }
@keyframes ecs-logo { to { height: 40px; } }

/* FAQ accordion (native <details>): +/- marker in the header's brand color, open item lifts */
main.e-div-block-base details > summary { list-style: none; }
main.e-div-block-base details > summary::-webkit-details-marker { display: none; }
main.e-div-block-base details > summary::after { content: "+"; flex: 0 0 auto; font-size: 24px; font-weight: 400; line-height: 1; color: currentColor; }
main.e-div-block-base details[open] > summary::after { content: "–"; /* literal en dash: Elementor strips backslash escapes from custom CSS */ }
main.e-div-block-base details > summary:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; border-radius: 4px; }
main.e-div-block-base details[open] { border-color: transparent; box-shadow: 0 2px 4px rgba(0,0,0,.06), 0 14px 32px -8px rgba(0,0,0,.18); }

/* Gravity Form (Orbital theme) tightened to the mockup: 12px rhythm, no hidden-field gaps, brand focus ring, full-width CTA.
   GF sets its variables with an ID body.elementor-page-44, so overrides need !important. */
main .ecs-lp-form { margin-bottom: 10px; }
/* CTA links jump to #gform_wrapper_N (the fields): land with the whole form card (heading included) below the sticky header. */
main .ecs-lp-form .gform_wrapper { scroll-margin-top: 270px; }
@media (max-width: 767px) { main .ecs-lp-form .gform_wrapper { scroll-margin-top: 260px; } }
main .ecs-lp-form .gform_wrapper.gform-theme {
  --gf-form-gap-y: 12px !important; --gf-form-gap-x: 12px !important;
  --gf-ctrl-size: 46px !important; --gf-ctrl-radius: 8px !important; --gf-ctrl-border-width: 1px !important;
  --gf-ctrl-font-family: var(--ecs-font) !important; --gf-ctrl-font-size: 15px !important;
  --gf-ctrl-bg-color: var(--ecs-field) !important; --gf-ctrl-bg-color-hover: var(--ecs-field) !important; --gf-ctrl-bg-color-focus: #FFFFFF !important;
  --gf-ctrl-border-color: rgba(0,0,0,.14) !important; --gf-ctrl-border-color-hover: color-mix(in srgb, var(--ecs-primary) 45%, transparent) !important; --gf-ctrl-border-color-focus: var(--ecs-primary) !important;
  --gf-ctrl-label-font-family-primary: var(--ecs-font) !important; --gf-ctrl-label-font-size-primary: 12.5px !important;
  --gf-ctrl-label-font-weight-primary: 700 !important; --gf-ctrl-label-color-primary: var(--ecs-ink) !important;
  --gf-ctrl-desc-font-family: var(--ecs-font) !important;
  font-family: var(--ecs-font);
}
main .ecs-lp-form .gform_validation_container,
main .ecs-lp-form .gfield.gform_hidden,
main .ecs-lp-form .gfield--type-hidden { display: none !important; }
main .ecs-lp-form .gfield_required { display: none !important; }
main .ecs-lp-form .gfield_label { margin-bottom: 5px !important; letter-spacing: .01em; }
main .ecs-lp-form .gfield input, main .ecs-lp-form .gfield select {
  box-shadow: inset 0 1px 2px rgba(0,0,0,.05) !important; transition: border-color .15s, box-shadow .15s, background-color .15s;
}
main .ecs-lp-form .gfield input:focus, main .ecs-lp-form .gfield select:focus {
  outline: 0 !important; border-color: var(--ecs-primary) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--ecs-primary) 20%, transparent) !important;
}
main .ecs-lp-form .gfield input::placeholder { color: color-mix(in srgb, var(--ecs-muted) 70%, transparent); }
main .ecs-lp-form .gfield--type-html { font-size: 11px; line-height: 1.45; color: var(--ecs-muted); margin-top: 2px; }
main .ecs-lp-form .gform_footer { margin: 14px 0 0 !important; padding: 0 !important; }
main .ecs-lp-form .gform_footer input[type=submit], main .ecs-lp-form .gform_footer button {
  width: 100% !important; height: 52px !important; margin: 0 !important; padding: 0 20px !important; border: 0 !important; border-radius: 8px !important;
  font: 700 16px/1 var(--ecs-font) !important; letter-spacing: .01em; color: var(--ecs-on-accent) !important; cursor: pointer;
  background: linear-gradient(180deg, color-mix(in srgb, var(--ecs-accent) 82%, #fff) 0%, var(--ecs-accent) 45%, color-mix(in srgb, var(--ecs-accent) 88%, #000) 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 8px 18px -6px color-mix(in srgb, var(--ecs-accent) 70%, transparent) !important;
  transition: transform .15s, box-shadow .15s;
}
main .ecs-lp-form .gform_footer input[type=submit]:hover, main .ecs-lp-form .gform_footer button:hover {
  transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 14px 26px -8px color-mix(in srgb, var(--ecs-accent) 80%, transparent) !important;
}
main .ecs-lp-form .gform_footer input[type=submit]:focus-visible { outline: 3px solid var(--ecs-primary) !important; outline-offset: 3px; }
main .ecs-lp-form .gform_validation_errors { margin-bottom: 12px !important; padding: 10px 12px !important; border-radius: 8px !important; }
@media (max-width: 420px) { main .ecs-lp-form .gfield--width-half { grid-column: 1 / -1 !important; } }

@media (prefers-reduced-motion: no-preference) {
  /* Hero intro (LP) */
  main.e-div-block-base > header + section h1 { animation: ecs-slide .6s cubic-bezier(.2,.7,.2,1) both .05s; }
  main.e-div-block-base > header + section > div > div:first-child > p:first-child { animation: ecs-rise .5s ease-out both; }
  main.e-div-block-base > header + section > div > div:first-child > h1 + p { animation: ecs-rise .6s ease-out both .12s; }
  main.e-div-block-base > header + section > div > div:first-child > div:nth-of-type(1) > p { animation: ecs-rise .5s ease-out both .2s; }
  main.e-div-block-base > header + section > div > div:first-child > div:nth-of-type(1) > p:nth-child(2) { animation-delay: .27s; }
  main.e-div-block-base > header + section > div > div:first-child > div:nth-of-type(1) > p:nth-child(3) { animation-delay: .34s; }
  main.e-div-block-base > header + section > div > div:first-child > div:nth-of-type(2) { animation: ecs-rise .5s ease-out both .42s; }
  main.e-div-block-base > header + section > div > div:last-child { animation: ecs-rise .7s cubic-bezier(.2,.7,.2,1) both .15s; }
  main.e-div-block-base > header + section + section > .e-grid-base { animation: ecs-rise .6s cubic-bezier(.2,.7,.2,1) both .35s; }

  /* Hero intro (Thank You) */
  main.e-div-block-base > header + section > div > p:first-child { animation: ecs-rise .5s ease-out both; }
  main.e-div-block-base > header + section > div > h1 + p { animation: ecs-rise .6s ease-out both .12s; }
  main.e-div-block-base > header + section > div > a { animation: ecs-rise .5s ease-out both .22s; }

  /* Header tightens as you scroll (no JS) */
  @supports (animation-timeline: scroll()) {
    main.e-div-block-base > header { animation: ecs-stick linear both; animation-timeline: scroll(); animation-range: 0px 120px; }
    main.e-div-block-base > header > img { animation: ecs-logo linear both; animation-timeline: scroll(); animation-range: 0px 120px; }
  }

  /* Scroll reveals */
  @supports (animation-timeline: view()) {
    main.e-div-block-base > section:nth-of-type(n+3) h2,
    main.e-div-block-base > section:nth-of-type(n+3) p:has(+ h2),
    main.e-div-block-base > section:nth-of-type(n+3) .e-grid-base > *,
    main.e-div-block-base > section:nth-of-type(n+3) h2 + div > div,
    main.e-div-block-base > section:nth-of-type(n+3) details,
    main.e-div-block-base > section:nth-of-type(n+3) > .e-flexbox-base > *,
    main.e-div-block-base > section:nth-of-type(2) > div > h2,
    main.e-div-block-base > section:nth-of-type(2) > div > .e-grid-base > * {
      animation: ecs-reveal linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 40%;
    }
  }
}/* End custom CSS */