.elementor-kit-5{--e-global-color-primary:#0A0A0A;--e-global-color-secondary:#1A1A1A;--e-global-color-text:#2A2A2A;--e-global-color-accent:#6B6B6B;--e-global-color-809e490:#D4D4D4;--e-global-color-bc8ae71:#F4F4F4;--e-global-color-8e8a125:#FFFFFF;--e-global-color-9a8cd09:#006225;--e-global-typography-primary-font-family:"Cinzel";--e-global-typography-primary-font-weight:400;--e-global-typography-secondary-font-family:"Mulish";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Mulish";--e-global-typography-text-font-weight:500;--e-global-typography-text-font-style:normal;--e-global-typography-accent-font-family:"Mulish";--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:none;--e-global-typography-accent-font-style:normal;--e-global-typography-e17a8be-font-family:"Cormorant Garamond";--e-global-typography-e17a8be-font-weight:400;--e-global-typography-e17a8be-font-style:italic;font-family:"Mulish", Sans-serif;font-size:16px;font-weight:400;}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-kit-5 a{color:var( --e-global-color-9a8cd09 );text-decoration:none;}.elementor-kit-5 a:hover{color:#006225B3;}.elementor-kit-5 h1{color:var( --e-global-color-primary );font-family:"Cinzel", Sans-serif;font-weight:400;text-transform:uppercase;}.elementor-kit-5 h2{color:var( --e-global-color-primary );font-family:"Cinzel", Sans-serif;font-weight:400;text-transform:uppercase;}.elementor-kit-5 h3{color:var( --e-global-color-primary );font-family:"Cinzel", Sans-serif;font-weight:400;text-transform:uppercase;}.elementor-kit-5 h4{color:var( --e-global-color-primary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-kit-5 h5{color:var( --e-global-color-primary );font-family:"Cinzel", Sans-serif;font-weight:400;text-transform:uppercase;}.elementor-kit-5 h6{color:var( --e-global-color-primary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;}.elementor-widget:not(:last-child){--kit-widget-spacing:32px;}.elementor-element{--widgets-spacing:32px 32px;--widgets-spacing-row:32px;--widgets-spacing-column:32px;}{}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;}}/* Start custom CSS *//* HEADER — Transparent variant with scroll transition */
/* Make the transparent header sticky */
.ek-header-transparent {
  position: fixed; top: 0; left: 0; right: 0; width: 100%; z-index: 999;
  transition: background-color var(--ek-transition), border-bottom-color var(--ek-transition), box-shadow var(--ek-transition);
  background-color: transparent; border-bottom: 1px solid transparent;
}
/* Scrolled state — adds .is-scrolled when user has scrolled past 100px */
.ek-header-transparent.is-scrolled { background-color: var(--ek-white); border-bottom: 1px solid var(--ek-gray-300); }
/* Swap the white logo for the black one on scroll */
.ek-header-transparent.is-scrolled img { filter: invert(1); }
/* Nav menu text turns black on scroll */
.ek-header-transparent.is-scrolled .elementor-nav-menu a { color: var(--ek-black) !important; }
.ek-header-transparent.is-scrolled .elementor-nav-menu a:hover { color: var(--ek-gray-600) !important; }
/* Button transitions to green-filled on scroll */
.ek-header-transparent.is-scrolled .elementor-button { background-color: var(--ek-green) !important; border-color: var(--ek-green) !important; color: var(--ek-white) !important; }
.ek-header-transparent.is-scrolled .elementor-button:hover { opacity: 0.85; }
/* Body padding so content doesn't hide under fixed header */
body { padding-top: 0; }
/* Mobile hamburger menu */
@media (max-width: 1024px) { .ek-header-transparent { padding: 12px 24px !important; } }

/* ====================================================== */
/* Header — White Variant (solid white, non-hero pages)   */
/* ====================================================== */
.ek-header-white {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 999;
  background-color: var(--ek-white);
  border-bottom: 1px solid var(--ek-gray-300);
}

/* ====================================================== */
/* Admin bar overlap fix — applies to both header variants */
/* Cosmetic only: nudges fixed header down when WP admin   */
/* bar is present so logged-in users see the full header.  */
/* Logged-out visitors are unaffected (no admin bar).     */
/* ====================================================== */
body.admin-bar .ek-header-transparent,
body.admin-bar .ek-header-white {
  top: 32px;
}

@media screen and (max-width: 782px) {
  body.admin-bar .ek-header-transparent,
  body.admin-bar .ek-header-white {
    top: 46px;
  }
}

/* ====================================================== */
/* Hero section overlay                                   */
/* ====================================================== */
.ek-hero {
  position: relative;
}
.ek-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(10, 10, 10, 0.35);
  z-index: 1;
  pointer-events: none;
}
.ek-hero > * {
  position: relative;
  z-index: 2;
}
/* ====================================================== */
/* Hover cards (Who We Serve section)                     */
/* 60% overlay normally, fades to 0% on hover.           */
/* Content fades to 0 opacity on hover (photo takes over) */
/* ====================================================== */
.ek-hover-card {
  position: relative;
  overflow: hidden;
  cursor: default;
  aspect-ratio: 4 / 3;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.ek-hover-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(10, 10, 10, 0.6);
  transition: background var(--ek-transition);
  z-index: 1;
  pointer-events: none;
}
.ek-hover-card:hover::before {
  background: rgba(10, 10, 10, 0);
}
.ek-hover-card > * {
  position: relative;
  z-index: 2;
  transition: opacity var(--ek-transition);
}
.ek-hover-card:hover > * {
  opacity: 0;
}

/* ====================================================== */
/* Spotlight project cards — zoom + caption reveal hover  */
/* ====================================================== */
.ek-spotlight-card {
  position: relative;
  overflow: hidden;
  cursor: default;
  aspect-ratio: 4 / 3;
}
.ek-spotlight-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 600ms cubic-bezier(0.4, 0, 0.2, 1);
}
.ek-spotlight-card:hover img {
  transform: scale(1.06);
}
.ek-spotlight-card__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 18px 22px;
  background: rgba(10, 10, 10, 0.88);
  color: var(--ek-white);
  transform: translateY(100%);
  transition: transform 400ms cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 2;
}
.ek-spotlight-card:hover .ek-spotlight-card__caption {
  transform: translateY(0);
}
.ek-spotlight-card__caption h4 {
  font-family: 'Cinzel', serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ek-white);
  margin: 0 0 4px 0;
  line-height: 1.2;
}
.ek-spotlight-card__caption p {
  font-family: 'Mulish', sans-serif;
  font-size: 14px;
  line-height: 1.4;
  color: var(--ek-white);
  margin: 0;
  opacity: 0.85;
}
/* ====================================================== */
/* Process section — numbered steps                       */
/* ====================================================== */
.ek-process-step__number {
  font-family: 'Cinzel', serif;
  font-size: 14px;
  letter-spacing: 0.2em;
  color: var(--ek-gray-300);
  font-weight: 400;
}

/* ====================================================== */
/* Logo marquee — auto-scrolling row                      */
/* ====================================================== */
.ek-logo-marquee-container {
  overflow: hidden;
  width: 100%;
  position: relative;
}
.ek-logo-marquee {
  display: flex;
  gap: 80px;
  width: max-content;
  animation: ek-marquee 40s linear infinite;
  align-items: center;
}
.ek-logo-marquee > * {
  flex-shrink: 0;
  filter: grayscale(100%);
  opacity: 0.6;
  transition: opacity var(--ek-transition);
}
.ek-logo-marquee > *:hover {
  opacity: 1;
}
@keyframes ek-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
/* ====================================================== */
/* Award section — restrained editorial layout            */
/* ====================================================== */
.ek-award-kicker {
  font-family: 'Cinzel', serif;
  font-size: 14px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ek-gray-600);
}

/* Process icons — enforced sizing */
.ek-process-step__icon,
.elementor-widget-image.ek-process-step__icon {
  width: 144px !important;
  max-width: 144px !important;
  filter: brightness(0) invert(1);
  margin-bottom: 0;
}
.ek-process-step__icon img {
  width: 144px !important;
  max-width: 144px !important;
  height: auto !important;
  object-fit: contain;
}
@media (max-width: 1024px) {
  .ek-process-step__icon, .elementor-widget-image.ek-process-step__icon { width: 120px !important; max-width: 120px !important; }
  .ek-process-step__icon img { width: 120px !important; max-width: 120px !important; }
}
@media (max-width: 768px) {
  .ek-process-step__icon, .elementor-widget-image.ek-process-step__icon { width: 96px !important; max-width: 96px !important; }
  .ek-process-step__icon img { width: 96px !important; max-width: 96px !important; }
}

/* ====================================================== */
/* Mobile-only: Green accent on Contact Us menu item     */
/* ====================================================== */
@media (max-width: 767px) {
  .elementor-nav-menu > li:last-child > a {
    color: var(--ek-green) !important;
    border-top: 1px solid rgba(0, 98, 37, 0.2);
    padding-top: 16px !important;
    margin-top: 8px !important;
  }
  .elementor-nav-menu > li:last-child > a:hover,
  .elementor-nav-menu > li:last-child > a:focus {
    color: var(--ek-black) !important;
  }
}
/* ====================================================== */
/* Mobile H2 sizing — all H2s to 24px on mobile          */
/* ====================================================== */
@media (max-width: 767px) {
  h2.elementor-heading-title {
    font-size: 24px !important;
  }
}

/* ====================================================== */
/* Mobile: legal pages header overlap fix                */
/* ====================================================== */
@media (max-width: 767px) {
  .page-id-53 .page-content,
  .page-id-57 .page-content,
  .page-id-59 .page-content {
    padding-top: 64px;
  }
}

/* ====================================================== */
/* Fallback: force-hide standalone Contact Us button      */
/* in header on mobile (both variants).                   */
/* Elementor emits legacy class .elementor-hide_mobile    */
/* which its stylesheet does not target, so we enforce.   */
/* ====================================================== */
@media (max-width: 767px) {
  .ek-header-transparent .elementor-widget-button.elementor-element-3a2d118,
  .ek-header-white .elementor-widget-button.elementor-element-9bcdf1d,
  .elementor-location-header .elementor-widget.elementor-hide_mobile {
    display: none !important;
  }
}

/* ====================================================== */
/* Hide Contact Us menu item on desktop only              */
/* Standalone Contact Us button handles desktop CTA       */
/* Mobile menu retains Contact Us with green accent       */
/* ====================================================== */
@media (min-width: 768px) {
  .elementor-nav-menu > li:last-child {
    display: none !important;
  }
}

/* === EK-LEGAL-H2 SPACING (appended) — rebalance subheader rhythm === */
.page-id-53 .page-content h2,
.page-id-57 .page-content h2,
.page-id-59 .page-content h2 {
  margin-top: 44px !important;
  margin-bottom: 14px !important;
}
.page-id-53 .page-content h1,
.page-id-57 .page-content h1,
.page-id-59 .page-content h1 {
  margin-bottom: 28px !important;
}
@media (max-width: 767px) {
  .page-id-53 .page-content h2,
  .page-id-57 .page-content h2,
  .page-id-59 .page-content h2 {
    margin-top: 32px !important;
    margin-bottom: 12px !important;
  }
}

/* ====================================================== */
/* Accessibility: pause logo marquee for reduced-motion   */
/* ====================================================== */
@media (prefers-reduced-motion: reduce) {
  .ek-logo-marquee {
    animation: none !important;
  }
}

/* EK-MOBILE-HEADER-FIX (Part 2): keep logo + hamburger on one line, compact bar, both variants */
@media (max-width: 767px) {
  .ek-header-transparent,
  .ek-header-white {
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 56px !important;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }
  /* the menu/toggle container: stop it wrapping to a second line and shed extra vertical padding */
  .ek-header-transparent > .e-con.e-child,
  .ek-header-white > .e-con.e-child {
    flex: 0 0 auto !important;
    width: auto !important;
    align-items: center !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  /* logo does not stretch/grow the row */
  .ek-header-transparent > .elementor-widget-image,
  .ek-header-white > .elementor-widget-image {
    flex: 0 0 auto !important;
  }
}

/* EK-MOBILE-HEADER-NAVCAP (Part 2): collapse nav-menu widget to toggle height so bar stays compact */
@media (max-width: 767px) {
  .ek-header-transparent .elementor-widget-nav-menu,
  .ek-header-white .elementor-widget-nav-menu {
    display: flex !important;
    align-items: center !important;
    height: auto !important;
  }
  .ek-header-transparent .elementor-nav-menu--main,
  .ek-header-white .elementor-nav-menu--main {
    align-items: center !important;
  }
  /* the toggle wrapper should not reserve extra vertical space */
  .ek-header-transparent .elementor-menu-toggle,
  .ek-header-white .elementor-menu-toggle {
    margin: 0 !important;
  }
}

/* EK-MOBILE-HEADER-GAP (Part 2): kill flex column gap on mobile nav widget so bar collapses to toggle height */
@media (max-width: 767px) {
  .ek-header-transparent .elementor-widget-nav-menu,
  .ek-header-white .elementor-widget-nav-menu {
    gap: 0 !important;
    row-gap: 0 !important;
    justify-content: center !important;
  }
}

/* LEGAL PAGES – Desktop top-clearance so in-content H1 clears the fixed header (header ~99px). Mobile 64px rule above is unchanged. */
@media (min-width: 768px) {
  .page-id-53 .page-content,
  .page-id-57 .page-content,
  .page-id-59 .page-content {
    padding-top: 120px;
  }
}

/* FOOTER – Center column text on desktop and mobile (Footer template 61). Legal-links row left as-is – flagged for review. */
.elementor-61 .elementor-widget-heading .elementor-heading-title,
.elementor-61 .elementor-widget-text-editor,
.elementor-61 .elementor-widget-icon-list .elementor-icon-list-items,
.elementor-61 .elementor-widget-icon-list .elementor-icon-list-item {
  text-align: center;
  justify-content: center;
}
.elementor-61 .elementor-widget-heading,
.elementor-61 .elementor-widget-text-editor {
  text-align: center;
}

/* FOOTER icon-list anchor centering – center the nav link text inside icon-list anchors (both views) */
.elementor-61 .elementor-widget-icon-list .elementor-icon-list-item > a,
.elementor-61 .elementor-widget-icon-list .elementor-icon-list-item {
  justify-content: center;
}
.elementor-61 .elementor-widget-icon-list .elementor-icon-list-text {
  text-align: center;
}

/* HEADER FLASH FIX (Brief 2 Part 5) – prevent white first-paint flash.
   (a) Force transparent at top so nothing can paint white first.
   (b) Remove background-color from the UN-scrolled transition so the initial
       state can't visibly fade from white; keep the bg transition only for
       the .is-scrolled toggle so scrolling still smoothly goes to white. */
.ek-header-transparent {
  background-color: transparent !important;
  transition: border-bottom-color var(--ek-transition), box-shadow var(--ek-transition);
}
.ek-header-transparent.is-scrolled {
  background-color: var(--ek-white) !important;
  transition: background-color var(--ek-transition), border-bottom-color var(--ek-transition), box-shadow var(--ek-transition);
}

/* FOOTER LEGAL ROW – hide pipes on mobile (Brief 2 Part 6). Pipes are literal "|" heading widgets
   (e4c3363, d24ead4). On mobile the row wraps and the pipes orphan – hide them
   so the three links stack cleanly (centered). Desktop unchanged. */
@media (max-width: 767px) {
  .elementor-61 .elementor-element-e4c3363,
  .elementor-61 .elementor-element-d24ead4 {
    display: none;
  }
}


/* EK-BURGER-CONSISTENCY: make white-header hamburger transparent bg + green lines to match transparent-header pages */
.ek-header-white .elementor-menu-toggle {
  background-color: transparent !important;
}
.ek-header-white .elementor-menu-toggle,
.ek-header-white .elementor-menu-toggle i,
.ek-header-white .elementor-menu-toggle svg {
  color: var(--ek-green) !important;
  fill: var(--ek-green) !important;
  --nav-menu-icon-color: var(--ek-green);
}
.ek-header-white .elementor-menu-toggle .e-font-icon-svg {
  fill: var(--ek-green) !important;
}/* End custom CSS */