.elementor-kit-5{--e-global-color-primary:#0F2A2E;--e-global-color-secondary:#0B6E69;--e-global-color-text:#0F2A2E;--e-global-color-accent:#FFC533;--e-global-typography-primary-font-family:"Figtree";--e-global-typography-primary-font-weight:800;--e-global-typography-secondary-font-family:"Figtree";--e-global-typography-secondary-font-weight:700;--e-global-typography-text-font-family:"Figtree";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Figtree";--e-global-typography-accent-font-weight:700;background-color:#FFFFFF;color:var( --e-global-color-v4-text-primary );font-family:var( --e-global-typography-v4-type-body-font-family ), system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;font-size:var( --e-global-typography-v4-type-body-font-size );font-weight:var( --e-global-typography-v4-type-body-font-weight );line-height:var( --e-global-typography-v4-type-body-line-height );}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{background-color:var( --e-global-color-v4-brand-accent );font-family:var( --e-global-typography-v4-type-button-font-family ), system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;font-size:var( --e-global-typography-v4-type-button-font-size );font-weight:var( --e-global-typography-v4-type-button-font-weight );line-height:var( --e-global-typography-v4-type-button-line-height );letter-spacing:var( --e-global-typography-v4-type-button-letter-spacing );color:var( --e-global-color-v4-text-primary );border-style:solid;border-width:2px 2px 2px 2px;border-color:var( --e-global-color-v4-text-primary );border-radius:10px 10px 10px 10px;padding:12px 20px 12px 20px;}.elementor-kit-5 button:hover,.elementor-kit-5 button:focus,.elementor-kit-5 input[type="button"]:hover,.elementor-kit-5 input[type="button"]:focus,.elementor-kit-5 input[type="submit"]:hover,.elementor-kit-5 input[type="submit"]:focus,.elementor-kit-5 .elementor-button:hover,.elementor-kit-5 .elementor-button:focus{background-color:var( --e-global-color-v4-brand-accent-hover );color:var( --e-global-color-v4-text-primary );}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-kit-5 a{color:var( --e-global-color-v4-brand-primary );}.elementor-kit-5 a:hover{color:var( --e-global-color-v4-brand-primary-hover );}.elementor-kit-5 h1{color:var( --e-global-color-v4-text-primary );font-family:var( --e-global-typography-v4-type-h1-font-family ), system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;font-size:var( --e-global-typography-v4-type-h1-font-size );font-weight:var( --e-global-typography-v4-type-h1-font-weight );line-height:var( --e-global-typography-v4-type-h1-line-height );letter-spacing:var( --e-global-typography-v4-type-h1-letter-spacing );}.elementor-kit-5 h2{color:var( --e-global-color-v4-text-primary );font-family:var( --e-global-typography-v4-type-h2-font-family ), system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;font-size:var( --e-global-typography-v4-type-h2-font-size );font-weight:var( --e-global-typography-v4-type-h2-font-weight );line-height:var( --e-global-typography-v4-type-h2-line-height );letter-spacing:var( --e-global-typography-v4-type-h2-letter-spacing );}.elementor-kit-5 h3{color:var( --e-global-color-v4-text-primary );font-family:var( --e-global-typography-v4-type-h3-font-family ), system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;font-size:var( --e-global-typography-v4-type-h3-font-size );font-weight:var( --e-global-typography-v4-type-h3-font-weight );line-height:var( --e-global-typography-v4-type-h3-line-height );letter-spacing:var( --e-global-typography-v4-type-h3-letter-spacing );}.elementor-kit-5 h4{color:var( --e-global-color-v4-text-primary );font-family:var( --e-global-typography-v4-type-h4-font-family ), system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;font-size:var( --e-global-typography-v4-type-h4-font-size );font-weight:var( --e-global-typography-v4-type-h4-font-weight );line-height:var( --e-global-typography-v4-type-h4-line-height );letter-spacing:var( --e-global-typography-v4-type-h4-letter-spacing );}.elementor-kit-5 h5{color:var( --e-global-color-v4-text-primary );font-family:var( --e-global-typography-v4-type-body-lg-font-family ), system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;font-size:var( --e-global-typography-v4-type-body-lg-font-size );font-weight:var( --e-global-typography-v4-type-body-lg-font-weight );line-height:var( --e-global-typography-v4-type-body-lg-line-height );}.elementor-kit-5 h6{color:var( --e-global-color-v4-text-primary );font-family:var( --e-global-typography-v4-type-label-font-family ), system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;font-size:var( --e-global-typography-v4-type-label-font-size );font-weight:var( --e-global-typography-v4-type-label-font-weight );line-height:var( --e-global-typography-v4-type-label-line-height );}.elementor-kit-5 label{color:var( --e-global-color-v4-text-primary );font-family:var( --e-global-typography-v4-type-label-font-family ), system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;font-size:var( --e-global-typography-v4-type-label-font-size );font-weight:var( --e-global-typography-v4-type-label-font-weight );line-height:var( --e-global-typography-v4-type-label-line-height );}.elementor-kit-5 input:not([type="button"]):not([type="submit"]),.elementor-kit-5 textarea,.elementor-kit-5 .elementor-field-textual{font-family:var( --e-global-typography-v4-type-body-font-family ), system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;font-size:var( --e-global-typography-v4-type-body-font-size );font-weight:var( --e-global-typography-v4-type-body-font-weight );line-height:var( --e-global-typography-v4-type-body-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;}.elementor-widget:not(:last-child){--kit-widget-spacing:16px;}.elementor-element{--widgets-spacing:16px 16px;--widgets-spacing-row:16px;--widgets-spacing-column:16px;}{}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-kit-5{font-size:var( --e-global-typography-v4-type-body-font-size );line-height:var( --e-global-typography-v4-type-body-line-height );}.elementor-kit-5 h1{font-size:var( --e-global-typography-v4-type-h1-font-size );line-height:var( --e-global-typography-v4-type-h1-line-height );letter-spacing:var( --e-global-typography-v4-type-h1-letter-spacing );}.elementor-kit-5 h2{font-size:var( --e-global-typography-v4-type-h2-font-size );line-height:var( --e-global-typography-v4-type-h2-line-height );letter-spacing:var( --e-global-typography-v4-type-h2-letter-spacing );}.elementor-kit-5 h3{font-size:var( --e-global-typography-v4-type-h3-font-size );line-height:var( --e-global-typography-v4-type-h3-line-height );letter-spacing:var( --e-global-typography-v4-type-h3-letter-spacing );}.elementor-kit-5 h4{font-size:var( --e-global-typography-v4-type-h4-font-size );line-height:var( --e-global-typography-v4-type-h4-line-height );letter-spacing:var( --e-global-typography-v4-type-h4-letter-spacing );}.elementor-kit-5 h5{font-size:var( --e-global-typography-v4-type-body-lg-font-size );line-height:var( --e-global-typography-v4-type-body-lg-line-height );}.elementor-kit-5 h6{font-size:var( --e-global-typography-v4-type-label-font-size );line-height:var( --e-global-typography-v4-type-label-line-height );}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{font-size:var( --e-global-typography-v4-type-button-font-size );line-height:var( --e-global-typography-v4-type-button-line-height );letter-spacing:var( --e-global-typography-v4-type-button-letter-spacing );}.elementor-kit-5 label{font-size:var( --e-global-typography-v4-type-label-font-size );line-height:var( --e-global-typography-v4-type-label-line-height );}.elementor-kit-5 input:not([type="button"]):not([type="submit"]),.elementor-kit-5 textarea,.elementor-kit-5 .elementor-field-textual{font-size:var( --e-global-typography-v4-type-body-font-size );line-height:var( --e-global-typography-v4-type-body-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-5{font-size:var( --e-global-typography-v4-type-body-font-size );line-height:var( --e-global-typography-v4-type-body-line-height );}.elementor-kit-5 h1{font-size:var( --e-global-typography-v4-type-h1-font-size );line-height:var( --e-global-typography-v4-type-h1-line-height );letter-spacing:var( --e-global-typography-v4-type-h1-letter-spacing );}.elementor-kit-5 h2{font-size:var( --e-global-typography-v4-type-h2-font-size );line-height:var( --e-global-typography-v4-type-h2-line-height );letter-spacing:var( --e-global-typography-v4-type-h2-letter-spacing );}.elementor-kit-5 h3{font-size:var( --e-global-typography-v4-type-h3-font-size );line-height:var( --e-global-typography-v4-type-h3-line-height );letter-spacing:var( --e-global-typography-v4-type-h3-letter-spacing );}.elementor-kit-5 h4{font-size:var( --e-global-typography-v4-type-h4-font-size );line-height:var( --e-global-typography-v4-type-h4-line-height );letter-spacing:var( --e-global-typography-v4-type-h4-letter-spacing );}.elementor-kit-5 h5{font-size:var( --e-global-typography-v4-type-body-lg-font-size );line-height:var( --e-global-typography-v4-type-body-lg-line-height );}.elementor-kit-5 h6{font-size:var( --e-global-typography-v4-type-label-font-size );line-height:var( --e-global-typography-v4-type-label-line-height );}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{font-size:var( --e-global-typography-v4-type-button-font-size );line-height:var( --e-global-typography-v4-type-button-line-height );letter-spacing:var( --e-global-typography-v4-type-button-letter-spacing );}.elementor-kit-5 label{font-size:var( --e-global-typography-v4-type-label-font-size );line-height:var( --e-global-typography-v4-type-label-line-height );}.elementor-kit-5 input:not([type="button"]):not([type="submit"]),.elementor-kit-5 textarea,.elementor-kit-5 .elementor-field-textual{font-size:var( --e-global-typography-v4-type-body-font-size );line-height:var( --e-global-typography-v4-type-body-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --brand-primary:#0B6E69; --brand-primary-hover:#085854; --brand-primary-deep:#0A3F3D; --brand-primary-tint:#E2F2F0; --brand-accent:#FFC533; --brand-accent-hover:#F2B01E; --brand-accent-tint:#FFF6DA; --brand-spark:#F2694B; --text-primary:#0F2A2E; --text-secondary:#4A5F63; --text-muted:#586D71; --text-inverse:#FFFFFF; --surface:#FFFFFF; --surface-alt:#F3F7F6; --surface-sunken:#E7EFEE; --border:#D3DFDD; --border-strong:#6B8185; --focus-ring:#0F2A2E; --success:#1B6B3A; --success-bg:#E6F4EA; --warning:#8A4600; --warning-bg:#FFF1DB; --error:#B42318; --error-bg:#FDECEA; --info:#1D4E89; --info-bg:#E8F0FA; --font-heading:Figtree; --font-body:Figtree; --space-3xs:0.25rem; --space-2xs:0.5rem; --space-xs:0.75rem; --space-sm:1rem; --space-md:1.5rem; --space-lg:2rem; --space-xl:3rem; --space-2xl:4rem; --space-3xl:6rem; --space-section:clamp(3rem, 2rem + 4vw, 6rem); --space-gutter:clamp(1rem, 0.5rem + 2vw, 2rem); --space-card:clamp(1rem, 0.85rem + 0.6vw, 1.5rem); --width-content:75rem; --width-wide:82.5rem; --width-reading:42rem; --width-form:35rem; --radius-control:10px; --radius-card:16px; --radius-pill:999px; --control-height:3rem; --control-height-sm:2.5rem; --control-height-lg:3.5rem; --duration-fast:150ms; --type-display:clamp(2.5rem, 1.75rem + 3.2vw, 4.25rem); --type-h1:clamp(2.125rem, 1.7rem + 1.9vw, 3.25rem); --type-h2:clamp(1.75rem, 1.45rem + 1.25vw, 2.5rem); --type-h3:clamp(1.375rem, 1.25rem + 0.55vw, 1.75rem); --type-h4:1.25rem; --type-body-lg:clamp(1.125rem, 1.07rem + 0.25vw, 1.25rem); --type-body:1rem; --type-body-sm:0.875rem; --type-label:0.9375rem; --type-article:1.125rem; --type-overline:0.8125rem; }
/* Start custom CSS *//* FFJ design system: global rules Elementor controls cannot express (Batch 03).
   Tokens live in Elementor V4 variables; keep this block small. */

/* Keyboard focus: 3px ink ring with a 2px white gap, visible on light and dark grounds.
   !important is intentional so no widget style can remove the focus indicator. */
:is(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 3px solid var(--focus-ring, #0F2A2E) !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 2px #FFFFFF;
}

/* Links inside running text are underlined so they never rely on color alone.
   .elementor prefix is needed to outrank Elementor's ".elementor a { text-decoration: none }". */
.elementor :is(p, dd, td, figcaption, blockquote) a,
.elementor :is(.elementor-widget-text-editor, .elementor-widget-theme-post-content) li a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}
.elementor :is(p, dd, td, figcaption, blockquote) a:hover,
.elementor :is(.elementor-widget-text-editor, .elementor-widget-theme-post-content) li a:hover {
  text-decoration-thickness: 2px;
}

::selection { background: var(--brand-accent-tint, #FFF6DA); color: var(--text-primary, #0F2A2E); }

/* Respect reduced-motion preferences site-wide. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/* Text links on deep-teal surfaces switch to white so they keep 4.5:1+ contrast. */
.ffj-surface-deep a:not(.ffj-btn) { color: #FFFFFF; }
.ffj-surface-deep a:not(.ffj-btn):hover { color: var(--brand-accent, #FFC533); }

/* Baseline for plain text fields that carry no Elementor class (e.g. WordPress search or comment forms).
   Specificity sits above Hello's reset and below Elementor V4 classes (ffj-input), so V4 styling wins.
   Kit Theme Style "Form Fields" border/padding are intentionally unset: they also hit checkboxes and radios. */
body :is(input[type="text"], input[type="email"], input[type="search"], input[type="tel"], input[type="url"], input[type="number"], input[type="password"], select, textarea) {
  min-height: 3rem;
  padding: 0.625rem 0.875rem;
  border: 1px solid var(--border-strong, #6B8185);
  border-radius: 10px;
  background-color: #FFFFFF;
  color: var(--text-primary, #0F2A2E);
  font: inherit;
}
body :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--brand-primary, #0B6E69); }
/* Brand the checked state of Elementor V4 checkboxes and radios that carry ffj-choice-input.
   Elementor's default unchecked border (#D6D5D5) is below 3:1, so ffj-choice-input also sets a 2px border-strong edge. */
body .elementor .ffj-choice-input:checked { background-color: var(--brand-primary, #0B6E69); border-color: var(--brand-primary, #0B6E69); }
body .elementor .ffj-radio-input:checked { background-color: var(--surface, #FFFFFF); }
body .elementor .ffj-radio-input::before { background-color: var(--brand-primary, #0B6E69); }
/* Placeholder text meets 4.5:1 (Elementor's default #9DA5AE is about 2.5:1). Labels stay visible; placeholders are hints only. */
body .elementor .ffj-input::placeholder,
body :is(input, textarea)::placeholder { color: var(--text-muted, #586D71); opacity: 1; }/* End custom CSS */