.elementor-kit-6{--e-global-color-primary:#1F3A5F;--e-global-color-secondary:#8C734A;--e-global-color-text:#3A424A;--e-global-color-accent:#C9A96A;--e-global-typography-primary-font-family:"Lora";--e-global-typography-primary-font-weight:400;--e-global-typography-secondary-font-family:"Lora";--e-global-typography-secondary-font-weight:500;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Inter";--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);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@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 { --e-gv-0f5133e:#1F3A5F; --e-gv-0bd08e2:#13263F; --e-gv-97079ec:#E8EDF3; --e-gv-178889b:#8C734A; --e-gv-d9efcfd:#6E5836; --e-gv-e779209:#F3EEE4; --e-gv-f2231bb:#C9A96A; --e-gv-286eb19:#1F3A5F; --e-gv-377502b:#3A424A; --e-gv-8504fb3:#5F6A72; --e-gv-1720762:#FFFFFF; --e-gv-72fad4d:#FDFCFA; --e-gv-2919355:#F2F1ED; --e-gv-3a50d13:#13263F; --e-gv-aabd1f1:#D3D6DB; --e-gv-f162696:#E6E8EC; --e-gv-21a96ce:Lora; --e-gv-07a2407:Inter; --e-gv-3870edd:#2F7A3E; --e-gv-2d8bd50:#B97407; --e-gv-6734d82:#A62121; --e-gv-01cc9c6:#1F5F8B; --e-gv-161eb76:8px; --e-gv-07b2b87:12px; --e-gv-9094252:16px; --e-gv-ded40b1:24px; --e-gv-e45bc83:32px; --e-gv-3d96b9f:48px; --e-gv-fc196c7:64px; --e-gv-d0d2a81:96px; --e-gv-cbb7d02:12px; --e-gv-b79250d:14px; --e-gv-c972b22:16px; --e-gv-969a142:18px; --e-gv-ebac8be:20px; --e-gv-15304cb:24px; --e-gv-a975639:32px; --e-gv-16ee2ac:40px; --e-gv-5e05c6b:56px; --e-gv-b1f0852:4px; --e-gv-6640b9d:8px; --e-gv-86d5494:16px; --e-gv-d8868f2:999px; --e-gv-5231348:720px; --e-gv-c6b87aa:1140px; --e-gv-d2412ae:1320px; --ColorPrimary:#1F3A5F; --ColorPrimaryDark:#13263F; --ColorPrimaryLight:#E8EDF3; --ColorSecondary:#8C734A; --ColorSecondaryDark:#6E5836; --ColorSecondaryLight:#F3EEE4; --ColorAccent:#C9A96A; --ColorTextHeading:#1F3A5F; --ColorTextBody:#3A424A; --ColorTextMuted:#5F6A72; --ColorTextInverse:#FFFFFF; --ColorSurface:#FDFCFA; --ColorSurfaceAlt:#F2F1ED; --ColorSurfaceDark:#13263F; --ColorBorder:#D3D6DB; --ColorBorderMuted:#E6E8EC; --ColorSuccess:#2F7A3E; --ColorWarning:#B97407; --ColorError:#A62121; --ColorInfo:#1F5F8B; --FontHeading:Lora; --FontBody:Inter; --SpaceXs:8px; --SpaceSm:12px; --SpaceMd:16px; --SpaceLg:24px; --SpaceXl:32px; --Space2xl:48px; --Space3xl:64px; --Space4xl:96px; --TextXs:12px; --TextSm:14px; --TextBase:16px; --TextLg:18px; --TextXl:20px; --Text2xl:24px; --Text3xl:32px; --Text4xl:40px; --Text5xl:56px; --RadiusSm:4px; --RadiusMd:8px; --RadiusLg:16px; --RadiusFull:999px; --ContainerNarrow:720px; --ContainerBase:1140px; --ContainerWide:1320px; }
/* Start custom CSS *//* Prose: inline links and emphasis. Global Classes cannot use descendant
   .elementor-kit-6s, so these live here in the kit stylesheet. */
.elementor .prose a { color: var(--ColorSecondaryDark); text-decoration: underline; }
.elementor .prose a:hover { color: var(--ColorPrimary); }

/* Footer links sit on the dark navy surface: white, light gold on hover.
   The 'p a' scope keeps the legal nav menu out, since that renders as ul > li > a. */
.elementor .site-footer .contact-block a,
.elementor .site-footer .footer-bottom p a { color: var(--ColorTextInverse); }
.elementor .site-footer .footer-bottom p a { text-decoration: underline; }
.elementor .site-footer .contact-block a:hover,
.elementor .site-footer .contact-block a:focus-visible,
.elementor .site-footer .footer-bottom p a:hover,
.elementor .site-footer .footer-bottom p a:focus-visible { color: var(--ColorAccent); }
.elementor .prose strong, .elementor .prose b { font-weight: 700; color: var(--ColorTextHeading); }

/* === Gravity Forms =========================================================
   Brand tokens are mapped onto the Gravity Forms theme framework variables,
   so the plugin's own rules resolve to our design system.

   SPECIFICITY, measured against gravity-forms-theme-framework.css:
     button  .gform-theme.gform-theme--framework.gform_wrapper
             input[type=submit].button.gform_button        -> (0,5,2)
     fields  equivalent .elementor-kit-6s per input type           -> (0,3,2)
   The prefix below repeats .gform_wrapper to reach 5 classes, which puts each
   rule at (0,7,1) or (0,6,2) and above anything the plugin ships. No
   !important anywhere.
   ========================================================================= */
.elementor .gform_wrapper {
  --gf-ctrl-font-family: var(--FontBody);
  --gf-ctrl-font-size: var(--TextBase);
  --gf-ctrl-color: var(--ColorTextBody);
  --gf-ctrl-bg-color: var(--ColorSurface);
  --gf-ctrl-bg-color-focus: var(--ColorSurface);
  --gf-ctrl-bg-color-hover: var(--ColorSurface);
  --gf-ctrl-border-width: 2px;
  --gf-ctrl-border-color: var(--ColorSecondary);
  --gf-ctrl-border-color-hover: var(--ColorSecondaryDark);
  --gf-ctrl-border-color-focus: var(--ColorPrimary);
  --gf-ctrl-radius: var(--RadiusMd);
  --gf-ctrl-accent-color: var(--ColorPrimary);
  --gf-ctrl-label-font-family-primary: var(--FontBody);
  --gf-ctrl-label-font-size-primary: var(--TextSm);
  --gf-ctrl-label-font-weight-primary: 500;
  --gf-ctrl-label-color-primary: var(--ColorTextHeading);
  --gf-ctrl-label-font-family-secondary: var(--FontBody);
  --gf-ctrl-label-font-size-secondary: var(--TextBase);
  --gf-ctrl-label-color-secondary: var(--ColorTextBody);
  --gf-ctrl-label-color-req: var(--ColorSecondaryDark);
  --gf-ctrl-label-font-size-req: var(--TextSm);
  --gf-ctrl-desc-font-family: var(--FontBody);
  --gf-ctrl-desc-font-size: var(--TextSm);
  --gf-ctrl-desc-color: var(--ColorTextMuted);
  --gf-ctrl-desc-border-width-consent: 0;
  --gf-ctrl-desc-max-height-consent: none;
  --gf-ctrl-btn-font-family: var(--FontBody);
  --gf-ctrl-btn-font-size: var(--TextBase);
  --gf-ctrl-btn-font-weight: 500;
  --gf-ctrl-btn-radius: var(--RadiusMd);
  --gf-ctrl-btn-padding-x: var(--SpaceLg);
  --gf-ctrl-btn-border-width-primary: 0;
  --gf-ctrl-btn-border-color-primary: transparent;
  --gf-ctrl-btn-bg-color-primary: var(--ColorPrimary);
  --gf-ctrl-btn-bg-color-hover-primary: var(--ColorPrimaryDark);
  --gf-ctrl-btn-bg-color-focus-primary: var(--ColorPrimaryDark);
  --gf-ctrl-btn-color-primary: var(--ColorTextInverse);
  --gf-ctrl-btn-color-hover-primary: var(--ColorTextInverse);
  --gf-ctrl-btn-color-focus-primary: var(--ColorTextInverse);
  --gf-color-danger: var(--ColorError);
  --gf-form-gap-y: var(--SpaceXl);
  --gf-field-gap-y: var(--SpaceLg);
}

/* The "* indicates required fields" note is redundant with the asterisks. */
.elementor .gform_wrapper .gform_required_legend { display: none; }

/* Fields: 2px gold border and the same radius as the buttons. */
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container input[type=text],
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container input[type=email],
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container input[type=tel],
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container input[type=url],
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container input[type=number],
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container select,
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container textarea {
  font-family: var(--FontBody);
  font-size: var(--TextBase);
  color: var(--ColorTextBody);
  background-color: var(--ColorSurface);
  border-width: 2px;
  border-style: solid;
  border-color: var(--ColorSecondary);
  border-radius: var(--RadiusMd);
  box-shadow: none;
  transition: border-color 0.15s;
}
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container input:hover,
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container textarea:hover,
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container select:hover {
  border-color: var(--ColorSecondaryDark);
}
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container input:focus,
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container textarea:focus,
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container select:focus {
  border-color: var(--ColorPrimary);
  outline: none;
  box-shadow: none;
}
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container textarea {
  height: 120px;
  min-height: 120px;
  padding-block: var(--SpaceSm);
  padding-inline: var(--SpaceMd);
}

/* Submit button: identical to .btn-primary used elsewhere on the site. */
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework button.gform_button.button,
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework input[type=submit].gform_button.button {
  font-family: var(--FontBody);
  font-weight: 500;
  font-size: var(--TextBase);
  line-height: 1.5;
  height: auto;
  min-height: 0;
  padding-block: var(--SpaceSm);
  padding-inline: var(--SpaceLg);
  border-width: 0;
  border-style: none;
  border-radius: var(--RadiusMd);
  background-color: var(--ColorPrimary);
  color: var(--ColorTextInverse);
  box-shadow: none;
  text-transform: none;
  letter-spacing: normal;
  transition: background-color 0.18s;
}
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework button.gform_button.button:hover,
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework button.gform_button.button:focus-visible,
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework input[type=submit].gform_button.button:hover,
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework input[type=submit].gform_button.button:focus-visible {
  background-color: var(--ColorPrimaryDark);
  color: var(--ColorTextInverse);
  box-shadow: none;
}

/* Custom checkbox. Chrome drops accent-color on a native checkbox as soon as
   an author background-color is set, and Gravity Forms sets one on every
   control, so the checked state had no visible tick. */
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container input[type=checkbox] {
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  min-width: 18px;
  min-height: 18px;
  flex: 0 0 auto;
  border: 2px solid var(--ColorSecondary);
  border-radius: var(--RadiusSm);
  background-color: var(--ColorSurface);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 12px 12px;
  box-shadow: none;
  cursor: pointer;
  transition: background-color 0.15s, border-color 0.15s;
}
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container input[type=checkbox]:hover {
  border-color: var(--ColorSecondaryDark);
}
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container input[type=checkbox]:checked {
  background-color: var(--ColorPrimary);
  border-color: var(--ColorPrimary);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23FFFFFF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.5 3.5L13 5'/%3E%3C/svg%3E");
}
.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container input[type=checkbox]:focus-visible {
  outline: 2px solid var(--ColorPrimary);
  outline-offset: 2px;
}

.elementor .gform_wrapper.gform_wrapper.gform-theme.gform-theme--framework .ginput_container input[type=checkbox]:before {
  color: var(--ColorTextInverse);
}

.elementor .gform_wrapper .gfield_consent_label a { color: var(--ColorSecondaryDark); text-decoration: underline; }
.elementor .gform_wrapper .gfield_consent_label a:hover { color: var(--ColorPrimary); }
.elementor .gform_wrapper .gform_confirmation_message { font-family: var(--FontBody); font-size: var(--TextLg); line-height: 1.75; color: var(--ColorTextBody); }

/* Menu toggle: three bars that morph into a cross while the off-canvas is open.
   The trigger is an <a href="#elementor-action...">, NOT a <button data-action-link>.
   That matters twice over:
     1. Elementor's atomic handler binds [data-action-link] on BOTH the element and
        its parent container (:has(> [data-action-link])), so a button fired the
        toggle twice and the panel opened and closed on one click. An <a> is handled
        only by core urlActions, delegated once on document.
     2. The off-canvas handler's getTriggerElements() only collects <a> elements, so
        as an anchor it gets aria-controls and aria-expanded for free. */
.elementor .nav-toggle svg { width: 100%; height: 100%; display: block; }
.elementor .nav-toggle svg rect { fill: currentColor; transform-box: fill-box; transform-origin: center; transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.18s linear; }
.elementor .nav-toggle[aria-expanded="true"] svg rect:nth-of-type(1) { transform: translateY(6px) rotate(45deg); }
.elementor .nav-toggle[aria-expanded="true"] svg rect:nth-of-type(2) { opacity: 0; transform: scaleX(0.2); }
.elementor .nav-toggle[aria-expanded="true"] svg rect:nth-of-type(3) { transform: translateY(-6px) rotate(-45deg); }
@media (prefers-reduced-motion: reduce) {
  .elementor .nav-toggle svg rect { transition: none; }
}

/* Sticky header.
   The `site-header` class carries position:sticky, but Elementor wraps every
   theme location in `.elementor-location-header`, which is exactly as tall as
   the header itself. A sticky box cannot travel outside its containing block,
   so it scrolled away. The wrapper has to be the sticky element. */
body .elementor-location-header {
  position: sticky;
  top: 0;
  z-index: 50;
}
body.admin-bar .elementor-location-header { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .elementor-location-header { top: 46px; }
}/* End custom CSS */