/**
 * Reviewed Service hover contract.
 *
 * Loaded after the legacy theme styles by functions.php. It fixes the shared secondary CTA in
 * the single-Service hero. The approved grey CTA changes to lime but retains
 * black label and SVG-path strokes; live Elementor styles turn only the label
 * white and therefore split the icon and label treatments.
 * It also restores the Figma states of the Services-mega links and All Services
 * pill without changing the shared header's layout or open/close behaviour.
 */

/* Figma family 1574:2627 — Services mega-menu text links. */
.elementor-location-header .cie-site-header--figma-navbar .cie-header-main
  .cie-mega-figma--services .cie-mega-figma__link .elementor-button {
  transition: color 300ms ease-in !important;
}

.elementor-location-header .cie-site-header--figma-navbar .cie-header-main
  .cie-mega-figma--services .cie-mega-figma__link .elementor-button:focus-visible {
  color: #8597a3 !important;
  outline: 3px solid #465961 !important;
  outline-offset: 3px !important;
}

/* Figma family 1524:6240 — the All Services pill. */
.elementor-location-header .cie-site-header--figma-navbar .cie-header-main
  .cie-mega-figma--services .cie-mega-figma__pill .elementor-button {
  transition: background-color 300ms ease-in, border-color 300ms ease-in,
    color 300ms ease-in !important;
}

.elementor-location-header .cie-site-header--figma-navbar .cie-header-main
  .cie-mega-figma--services .cie-mega-figma__pill .elementor-button:focus-visible {
  background-color: #465961 !important;
  border-color: #465961 !important;
  color: #fff !important;
  outline: 3px solid #465961 !important;
  outline-offset: 3px !important;
}

.elementor-location-header .cie-site-header--figma-navbar .cie-header-main
  .cie-mega-figma--services .cie-mega-figma__pill .elementor-button:focus-visible
  :is(.elementor-button-text, .elementor-button-icon) {
  color: #fff !important;
}

@media (hover: hover) and (pointer: fine) {
  .elementor-location-header .cie-site-header--figma-navbar .cie-header-main
    .cie-mega-figma--services .cie-mega-figma__link .elementor-button:hover {
    color: #8597a3 !important;
  }

  .elementor-location-header .cie-site-header--figma-navbar .cie-header-main
    .cie-mega-figma--services .cie-mega-figma__pill .elementor-button:hover {
    background-color: #465961 !important;
    border-color: #465961 !important;
    color: #fff !important;
  }

  .elementor-location-header .cie-site-header--figma-navbar .cie-header-main
    .cie-mega-figma--services .cie-mega-figma__pill .elementor-button:hover
    :is(.elementor-button-text, .elementor-button-icon) {
    color: #fff !important;
  }
}

/* Keyboard-equivalent state: available on every input type. */
body.single-service .elementor.elementor-location-single .elementor-element-d5d550c
  > .elementor-element-7109262 .elementor-button {
  background-color: #cad1d6 !important;
  border-color: #cad1d6 !important;
  color: #000 !important;
}

body.single-service .elementor.elementor-location-single .elementor-element-d5d550c
  > .elementor-element-7109262 .elementor-button:focus-visible {
  background-color: #a6ce39 !important;
  border-color: #a6ce39 !important;
  color: #000 !important;
  outline: 3px solid #465961 !important;
  outline-offset: 3px !important;
}

body.single-service .elementor.elementor-location-single .elementor-element-d5d550c
  > .elementor-element-7109262 .elementor-button:focus-visible
  :is(.elementor-button-text, .elementor-button-icon) {
  color: #000 !important;
}

body.single-service .elementor.elementor-location-single .elementor-element-d5d550c
  > .elementor-element-7109262 .elementor-button:focus-visible
  .elementor-button-icon svg path {
  stroke: #000 !important;
}

/* Hover remains opt-in for precise pointer devices, so touch cannot latch it. */
@media (hover: hover) and (pointer: fine) {
  body.single-service .elementor.elementor-location-single .elementor-element-d5d550c
    > .elementor-element-7109262 .elementor-button:hover {
    background-color: #a6ce39 !important;
    border-color: #a6ce39 !important;
    color: #000 !important;
  }

  body.single-service .elementor.elementor-location-single .elementor-element-d5d550c
    > .elementor-element-7109262 .elementor-button:hover
    :is(.elementor-button-text, .elementor-button-icon) {
    color: #000 !important;
  }

  body.single-service .elementor.elementor-location-single .elementor-element-d5d550c
    > .elementor-element-7109262 .elementor-button:hover
    .elementor-button-icon svg path {
    stroke: #000 !important;
  }
}

@media (hover: none), (pointer: coarse) {
  html body.single-service #page .elementor.elementor-location-single .elementor-element-d5d550c
    > .elementor-element-7109262 .elementor-button:hover {
    background-color: #cad1d6 !important;
    border-color: #cad1d6 !important;
    color: #000 !important;
  }

  html body.single-service #page .elementor.elementor-location-single .elementor-element-d5d550c
    > .elementor-element-7109262 .elementor-button:hover
    :is(.elementor-button-text, .elementor-button-icon) {
    color: #000 !important;
  }

  html body.single-service #page .elementor.elementor-location-single .elementor-element-d5d550c
    > .elementor-element-7109262 .elementor-button:hover .elementor-button-icon svg path {
    stroke: #000 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.single-service .elementor.elementor-location-single .elementor-element-d5d550c
    > .elementor-element-7109262 .elementor-button {
    transition-duration: 0.01ms !important;
  }
}

/* Figma training/service-related cards use the 1022ms GENTLE token. */
:is(body.home, body.single-service) .stos_loop .home_stos_loop .home_stos_loop_innertxt {
  transition: background-color 1022ms cubic-bezier(0.2, 0.8, 0.2, 1) !important;
}

:is(body.home, body.single-service) .stos_loop .home_stos_loop
  :is(h3, .loop_txt, .loop_txt_hover, .elementor-widget-button) {
  transition-duration: 1022ms !important;
}

:is(body.home, body.single-service) .stos_loop .home_stos_loop:focus-visible .home_stos_loop_innertxt {
  transform: translateY(0) !important;
  background-color: #fff !important;
  outline: 3px solid #a6ce39 !important;
  outline-offset: -3px !important;
}

:is(body.home, body.single-service) .stos_loop .home_stos_loop:focus-visible .loop_txt {
  display: none !important;
}

:is(body.home, body.single-service) .stos_loop .home_stos_loop:focus-visible :is(h3, .loop_txt_hover) {
  display: block !important;
  color: #000 !important;
}

/* Figma family 1057:189 Green — the primary Service hero CTA. */
body.single-service .elementor.elementor-location-single .elementor-element-d5d550c
  > .elementor-element-5991819 .elementor-button {
  background-color: #a6ce39 !important;
  border-color: #a6ce39 !important;
  color: #000 !important;
  transition: background-color 300ms ease-in, border-color 300ms ease-in,
    color 300ms ease-in !important;
}

body.single-service .elementor.elementor-location-single .elementor-element-d5d550c
  > .elementor-element-5991819 .elementor-button:focus-visible {
  background-color: #8ca0ab !important;
  border-color: #8ca0ab !important;
  color: #000 !important;
  outline: 3px solid #465961 !important;
  outline-offset: 3px !important;
}

@media (hover: hover) and (pointer: fine) {
  body.single-service .elementor.elementor-location-single .elementor-element-d5d550c
    > .elementor-element-5991819 .elementor-button:hover {
    background-color: #8ca0ab !important;
    border-color: #8ca0ab !important;
    color: #000 !important;
  }
}

/* Figma families 1138:897 and 2474:28983 — Services archive cards. */
body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17 {
  transform: none !important;
  box-shadow: none !important;
  transition: none !important;
}

body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17
  > .e-con-inner > .elementor-element-25b703c {
  background-color: #61737e !important;
  transition: background-color 1022ms cubic-bezier(0.2, 0.8, 0.2, 1) !important;
}

body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17
  :is(.elementor-heading-title, .solutioncons) {
  color: #fff !important;
  transition: color 1022ms cubic-bezier(0.2, 0.8, 0.2, 1) !important;
}

body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17 .cie-service-card__copy {
  max-height: 3.2em;
  overflow: hidden;
  transition: color 1022ms cubic-bezier(0.2, 0.8, 0.2, 1),
    max-height 1022ms cubic-bezier(0.2, 0.8, 0.2, 1) !important;
}

body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17 .cie-service-card__cta {
  display: block;
  max-height: 0;
  margin-top: 0;
  overflow: hidden;
  color: #292929;
  font-weight: 600;
  opacity: 0;
  transition: opacity 1022ms cubic-bezier(0.2, 0.8, 0.2, 1),
    max-height 1022ms cubic-bezier(0.2, 0.8, 0.2, 1),
    margin-top 1022ms cubic-bezier(0.2, 0.8, 0.2, 1) !important;
}

body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17 img {
  transform: none !important;
}

html body.page-id-29 #page main .e-loop-item.service > a.elementor-element-139bb17,
html body.page-id-29 #page main .e-loop-item.service > a.elementor-element-139bb17:hover,
html body.page-id-29 #page main .e-loop-item.service > a.elementor-element-139bb17:focus-visible,
html body.page-id-29 #page main .e-loop-item.service > a.elementor-element-139bb17 img,
html body.page-id-29 #page main .e-loop-item.service > a.elementor-element-139bb17:hover img,
html body.page-id-29 #page main .e-loop-item.service > a.elementor-element-139bb17:focus-visible img {
  transform: none !important;
  box-shadow: none !important;
}

body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17:focus-visible {
  outline: 3px solid #a6ce39 !important;
  outline-offset: 3px !important;
}

body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17:focus-visible
  > .e-con-inner > .elementor-element-25b703c {
  background-color: #fff !important;
}

body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17:focus-visible
  :is(.elementor-heading-title, .solutioncons) {
  color: #292929 !important;
}

body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17:focus-visible .cie-service-card__copy {
  max-height: 15em;
}

body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17:focus-visible .cie-service-card__cta {
  max-height: 2em;
  margin-top: 0.75rem;
  opacity: 1;
}

@media (hover: hover) and (pointer: fine) {
  body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17:hover {
    transform: none !important;
    box-shadow: none !important;
  }

  body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17:hover img {
    transform: none !important;
  }

  body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17:hover
    > .e-con-inner > .elementor-element-25b703c {
    background-color: #fff !important;
  }

  body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17:hover
    :is(.elementor-heading-title, .solutioncons) {
    color: #292929 !important;
  }

  body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17:hover .cie-service-card__copy {
    max-height: 15em;
  }

  body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17:hover .cie-service-card__cta {
    max-height: 2em;
    margin-top: 0.75rem;
    opacity: 1;
  }
}

/* Legacy card hovers are reset for coarse pointers so taps never latch them. */
@media (hover: none), (pointer: coarse) {

  :is(body.home, body.single-service) .stos_loop .home_stos_loop:hover .home_stos_loop_innertxt,
  :is(body.home, body.single-service) .stos_loop .home_stos_loop:focus-within:not(:has(:focus-visible)) .home_stos_loop_innertxt {
    background-color: #61737e !important;
  }

  :is(body.home, body.single-service) .stos_loop .home_stos_loop:hover :is(h3, .loop_txt),
  :is(body.home, body.single-service) .stos_loop .home_stos_loop:focus-within:not(:has(:focus-visible)) :is(h3, .loop_txt) {
    display: block !important;
    color: #fff !important;
  }

  :is(body.home, body.single-service) .stos_loop .home_stos_loop:hover .loop_txt_hover,
  :is(body.home, body.single-service) .stos_loop .home_stos_loop:hover .elementor-widget-button,
  :is(body.home, body.single-service) .stos_loop .home_stos_loop:focus-within:not(:has(:focus-visible)) .loop_txt_hover,
  :is(body.home, body.single-service) .stos_loop .home_stos_loop:focus-within:not(:has(:focus-visible)) .elementor-widget-button {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
  }

  body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17:hover
    > .e-con-inner > .elementor-element-25b703c {
    background-color: #61737e !important;
  }

  body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17:hover
    :is(.elementor-heading-title, .solutioncons) {
    color: #fff !important;
  }

  body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17:hover .cie-service-card__copy {
    max-height: 3.2em;
  }

  body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17:hover .cie-service-card__cta {
    max-height: 0;
    margin-top: 0;
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  :is(body.home, body.single-service) .stos_loop .home_stos_loop .home_stos_loop_innertxt,
  :is(body.home, body.single-service) .stos_loop .home_stos_loop
    :is(h3, .loop_txt, .loop_txt_hover, .elementor-widget-button),
  body.page-id-29 main .e-loop-item.service > a.elementor-element-139bb17
    :is(.elementor-element-25b703c, .elementor-heading-title, .solutioncons, .cie-service-card__cta) {
    transition-duration: 0.01ms !important;
  }
}

/* Shared Service hero rail: align copy with the header logo. */
@media (min-width: 1025px) {
  html body.single-service {
    --cie-detail-hero-inline-rail: calc(clamp(41px, calc(14.3vw - 105.6px), 220px) + 6px);
  }

  html body.single-service .elementor.elementor-location-single .leftsection {
    padding-left: var(--cie-detail-hero-inline-rail) !important;
  }

  html body.single-service .elementor.elementor-location-single .leftsection > .elementor-widget {
    padding-left: 0 !important;
  }
}

