/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 1.0.1
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/*
    Add your custom styles here
*/

body {
  --white-color: var(--e-global-color-59cc5dd);
  --divider-color: #dddddd;
}

.br-desktop-none br {
  display: none;
}
a figure {
  line-height: 0;
}

.elementor-widget-theme-post-excerpt p:last-child,
.elementor-widget-text-editor p:last-child,
.post-entry p:last-child {
  margin-bottom: 0;
}

.elementor-widget-text-editor ul {
  padding-left: 20px;
}

.elementor-widget-text-editor ul li:not(:last-child) {
  margin-bottom: 15px;
}

.elementor-widget-text-editor ul li::marker {
  color: var(--e-global-color-accent);
}

.elementor-blockquote--skin-quotation .elementor-blockquote {
  position: relative;
  padding-left: 80px;
}

.elementor-blockquote--skin-quotation .elementor-blockquote:before {
  position: absolute;
  top: -10px;
  left: 0;
  width: auto;
}

.elementor-widget-icon .elementor-icon-wrapper,
.elementor-widget-icon-box .elementor-icon-box-icon {
  line-height: 0;
}

.icon-height-size.elementor-widget-icon
  .elementor-icon-wrapper
  .elementor-icon
  svg {
  height: auto;
}

.elementor-widget-icon-box .elementor-icon-box-title,
.elementor-widget-image-box .elementor-image-box-title {
  margin-top: 0;
}

.icon-box-icon-center.elementor-widget-icon-box .elementor-icon-box-wrapper {
  align-items: center;
}

/* Phone Icon Box Hover Effects */

/* Container lift */
.icon-box-icon-center.elementor-widget-icon-box {
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.icon-box-icon-center.elementor-widget-icon-box:hover {
  transform: translateY(-3px);
}

/* SVG flips on 3D Y-axis continuously while hovered */
.icon-box-icon-center.elementor-widget-icon-box:hover
  .elementor-icon-box-icon
  .elementor-icon
  svg {
  animation: icon-3d-flip 1.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

/* Button CSS */

.elementor-widget-button {
  line-height: 0;
}

.elementor-widget-button .elementor-button-wrapper {
  line-height: 0;
}

.elementor-widget-button .elementor-button .elementor-button-content-wrapper {
  align-items: center;
}

.elementor-widget-button .elementor-button {
  position: relative;
  z-index: 1;
  overflow: hidden;
  border: 2px solid var(--white-color) !important;
  transition: border-color 0.4s ease-in-out;
}

.elementor-widget-button .elementor-button:before {
  content: "";
  position: absolute;
  top: 0;
  right: 50%;
  left: 50%;
  bottom: 0;
  background: var(--white-color);
  width: 0;
  height: 100%;
  z-index: -1;
  transition: all 0.4s ease-in-out;
}

.elementor-widget-button .elementor-button:hover:before,
.elementor-widget-button .elementor-button:focus:before {
  left: 0;
  right: 0;
  width: 100%;
}

.elementor-widget-button .elementor-button:hover,
.elementor-widget-button .elementor-button:focus {
  border-color: var(--e-global-color-accent) !important;
}

.elementor-widget-button .elementor-button .elementor-button-text {
  transition: color 0.4s ease-in-out;
}

.elementor-widget-button .elementor-button:hover .elementor-button-text,
.elementor-widget-button .elementor-button:focus .elementor-button-text {
  color: var(--e-global-color-accent) !important;
}

.heading-italic-light {
  font-style: italic;
  color: rgb(186 204 255);
}

/* White icon colours */
.white-icon-list .elementor-icon-list-icon i,
.white-icon-list .elementor-icon-list-icon svg {
  color: var(--white-color) !important;
  fill: var(--white-color) !important;
  stroke: var(--white-color);
}

/* Force 2-column grid so items always align in 2 rows of 2 */
.white-icon-list .elementor-icon-list-items.elementor-inline-items {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 20px 24px;
  padding-left: 0 !important;
  margin-left: 0 !important;
}

.white-icon-list .elementor-widget-container {
  padding-left: 0 !important;
}

/* Let grid control sizing — reset Elementor's inline-item overrides */
.white-icon-list
  .elementor-icon-list-items.elementor-inline-items
  .elementor-icon-list-item {
  width: auto !important;
  margin: 0 !important;
}

/* Prevent icons from being clipped — clear overflow on the whole chain */
.white-icon-list .elementor-widget-container,
.white-icon-list .elementor-icon-list-items,
.white-icon-list .elementor-icon-list-item,
.white-icon-list .elementor-icon-list-icon {
  overflow: visible !important;
}

.white-icon-list .elementor-icon-list-icon {
  flex-shrink: 0;
  display: flex !important;
  align-items: center;
  justify-content: center;
}

.white-icon-list .elementor-icon-list-icon svg {
  overflow: visible !important;
  display: block;
}
/* Header Button CSS */

.header-button.elementor-widget-button .elementor-button {
  border-top: none !important;
}

.header-button.elementor-widget-button .elementor-button:hover,
.header-button.elementor-widget-button .elementor-button:focus {
  border-color: var(--white-color) !important;
}

/* White Button CSS */

.white-btn.elementor-widget-button .elementor-button:before {
  background: var(--e-global-color-accent);
}

.white-btn.elementor-widget-button
  .elementor-button
  .elementor-button-content-wrapper
  .elementor-button-text {
  transition: all 0.4s ease-in-out;
}

.underline-btn.elementor-widget-button .elementor-button {
  background-image: none;
  border: none !important;
  overflow: visible;
  transition: none;
}

.underline-btn.elementor-widget-button .elementor-button:hover,
.underline-btn.elementor-widget-button .elementor-button:focus {
  border: none !important;
}

.underline-btn.elementor-widget-button
  .elementor-button:hover
  .elementor-button-text,
.underline-btn.elementor-widget-button
  .elementor-button:focus
  .elementor-button-text {
  color: inherit !important;
}

.underline-btn.elementor-widget-button
  .elementor-button
  .elementor-button-content-wrapper
  .elementor-button-text {
  text-decoration-line: underline;
  text-decoration-style: solid;
  text-decoration-skip-ink: auto;
  text-decoration-thickness: auto;
  text-underline-offset: auto;
  text-underline-position: from-font;
  text-transform: uppercase;
}

.underline-btn.elementor-widget-button .elementor-button:before {
  display: none;
}

/* Text Editor CSS */
.elementor-widget-text-editor p a,
.elementor-widget-icon-box .elementor-icon-box-description a,
.elementor-widget-image-box .elementor-image-box-description a {
  color: inherit;
  transition: all 0.3s ease-in-out;
}

/*  Tab Widget CSS */
.elementor-widget-n-tabs .e-n-tabs-heading .e-n-tab-title:hover,
.elementor-widget-n-tabs .e-n-tabs-heading .e-n-tab-title:focus {
  border-radius: var(--n-tabs-title-border-radius);
}

.elementor-widget-n-tabs .e-n-tabs-heading .e-n-tab-title {
  transition: all 0.3s ease-in-out;
}

.elementor-widget-n-tabs
  .e-n-tabs-heading
  .e-n-tab-title
  .e-n-tab-icon
  svg
  path {
  transition: all 0.3s;
}

/* Menu Border CSS */
.elementor-widget-nav-menu ul.elementor-nav-menu--dropdown a,
.elementor-widget-nav-menu ul.elementor-nav-menu--dropdown a:focus,
.elementor-widget-nav-menu ul.elementor-nav-menu--dropdown a:hover {
  border-inline-start: 0 !important;
}

/* Video Widget CSS */

.elementor-custom-embed-play i,
.elementor-custom-embed-play svg {
  opacity: 1;
  text-shadow: none;
  box-shadow: none;
  filter: none;
}

.column-2 ul,
.column-3 ul {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px 30px;
  padding: 0 !important;
  margin: 0 !important;
}

.column-2 ul li {
  width: calc(50% - 15px);
}

.column-3 ul li {
  width: calc(33.33% - 20px);
}

@media only screen and (max-width: 1024px) {
  .br-tablet-none br {
    display: none;
  }

  .column-3 ul li {
    width: calc(50% - 15px);
  }
}

@media only screen and (max-width: 767px) {
  .br-mobile-none br {
    display: none;
  }

  .elementor-blockquote--skin-quotation .elementor-blockquote {
    padding-left: 0;
    padding-top: 60px;
  }

  .column-2 ul,
  .column-3 ul {
    gap: 10px;
  }

  .column-2 ul li,
  .column-3 ul li {
    width: 100%;
  }
}

/* 
 * Header CSS 
 * */

.main-header.elementor-sticky {
  transition: all 0.3s ease-in-out;
}

.main-header.elementor-sticky.elementor-sticky--effects {
  background: rgb(from var(--e-global-color-secondary) r g b / 70%) !important;
  backdrop-filter: blur(40px);
}

.main-header:before {
  top: 0;
  left: auto;
  right: 0;
  clip-path: polygon(0 0, 100% 0, 100% 100%, calc(0% + 50px) 100%);
  width: 50%;
  height: 60px;
  transition: all 0.3s ease-in-out;
}

.header-logo {
  position: relative;
  z-index: 1;
}

.header-logo:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background-color: var(--white-color);
  clip-path: path("M0 0H262L242 164.399L131 235L20 164.399L0 0Z");
  width: 100%;
  height: 100%;
  z-index: -1;
  transition: all 0.4s ease-in-out;
}

.header-logo img {
  transition: all 0.3s ease-in-out;
}

.main-header.elementor-sticky.elementor-sticky--effects .header-logo img {
  max-width: 180px;
}

.header-menu
  .elementor-nav-menu--main
  > .elementor-nav-menu
  > li
  > .elementor-nav-menu--dropdown,
.header-menu .elementor-nav-menu__container.elementor-nav-menu--dropdown {
  transition: all 0.3s ease-in-out;
}

.main-header.elementor-sticky.elementor-sticky--effects
  .header-menu
  .elementor-nav-menu--main
  > .elementor-nav-menu
  > li
  > .elementor-nav-menu--dropdown,
.main-header.elementor-sticky.elementor-sticky--effects
  .header-menu
  .elementor-nav-menu__container.elementor-nav-menu--dropdown {
  margin-top: 39px !important;
}

.header2-container {
  position: fixed !important;
  top: -150px !important;
  left: 0;
  right: 0;
  z-index: 9999;
  transition: all 0.4s ease-in-out !important;
  box-shadow: 0px 0px 10px 0px
    rgb(from var(--e-global-color-primary) r g b / 15%);
}

.header2-container.header-show {
  top: 0 !important;
}

/* Mega Menu CSS */

.header-menu ul.mega-menu li > ul.mega-sub-menu .service-menu-list-wrapper {
  box-shadow: 0px 0px 10px 0px
    rgb(from var(--e-global-color-primary) r g b / 5%);
}

.header-menu .mega-menu-wrap > ul > li > ul {
  /* 	margin-top: 30px !important; */
}

.header2-container.header-show .header-menu .mega-menu-wrap > ul > li > ul {
  margin-top: 22px !important;
}

.header-menu .mega-menu-wrap > ul > li > a.mega-menu-link {
  position: relative;
}

.header-menu .mega-menu-wrap > ul > li > a.mega-menu-link:after {
  content: "";
  display: block !important;
  position: absolute;
  top: auto;
  left: 20px;
  right: 0;
  bottom: 0;
  background-color: currentcolor;
  width: calc(100% - 40px);
  height: 1px;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease-in-out;
}

.header-menu
  .mega-menu-wrap
  > ul
  > li.mega-current-menu-item
  > a.mega-menu-link:after,
.header-menu .mega-menu-wrap > ul > li.mega-toggle-on > a.mega-menu-link:after,
.header-menu .mega-menu-wrap > ul > li > a.mega-menu-link:hover:after,
.header-menu .mega-menu-wrap > ul > li > a.mega-menu-link:focus:after {
  opacity: 1;
  visibility: visible;
}

.header-menu
  #mega-menu-wrap-menu-1
  #mega-menu-menu-1
  li.mega-menu-item.mobile-menu {
  display: none !important;
}

.header-menu ul li.mega-menu-visiable ul {
  /*     opacity: 1 !important;
	visibility: visible !important; */
}

/* Tab CSS */

.header2-container.header-show
  .header-menu
  .service-mega-menu-container
  .services-menu-conatiner {
  width: 100%;
}

.services-menu-conatiner .elementor-widget-n-tabs .e-n-tabs-heading {
  padding-top: 100px;
  padding-bottom: 40px;
}

.services-menu-conatiner
  .elementor-widget-icon-list
  ul
  li
  .elementor-icon-list-icon,
.services-menu-conatiner
  .elementor-widget-n-tabs
  .e-n-tabs-heading
  .e-n-tab-icon {
  background-color: var(--e-global-color-secondary);
  width: 50px;
  height: 50px;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease-in-out;
}

.services-menu-conatiner
  .elementor-widget-icon-list
  ul
  li
  .elementor-icon-list-icon {
  margin: var(
    --e-icon-list-icon-margin,
    0 calc(var(--e-icon-list-icon-size, 1em) * 0.25) 0 0
  );
}

.services-menu-conatiner
  .elementor-widget-icon-list
  ul
  li
  .elementor-icon-list-icon
  svg {
  margin: 0 !important;
}

.services-menu-conatiner
  .elementor-widget-icon-list
  ul
  li:hover
  .elementor-icon-list-icon,
.services-menu-conatiner
  .elementor-widget-n-tabs
  .e-n-tabs-heading
  .e-n-tab-title:hover
  .e-n-tab-icon,
.services-menu-conatiner
  .elementor-widget-n-tabs
  .e-n-tabs-heading
  .e-n-tab-title[aria-selected="true"]
  .e-n-tab-icon {
  background-color: var(--e-global-color-accent);
}

.services-menu-conatiner
  .elementor-widget-n-tabs
  .e-n-tabs-content
  > .e-con
  > .e-child,
.services-menu-conatiner
  .elementor-widget-n-tabs
  .e-n-tabs-content
  > .e-con
  > .e-child
  .services-menu-img {
  height: 100%;
}

.services-menu-img img {
  aspect-ratio: 1 / 0.5;
  object-fit: cover;
  height: 100%;
}

@media only screen and (max-width: 1024px) {
  .header-logo:before {
    display: none;
  }

  .main-header:before {
    clip-path: unset;
    width: 100%;
    height: 100%;
  }

  .header-menu
    #mega-menu-wrap-menu-1
    #mega-menu-menu-1
    li.mega-menu-item.mobile-menu {
    display: block !important;
  }

  .main-header.elementor-sticky.elementor-sticky--effects
    .header-menu
    .elementor-nav-menu__container.elementor-nav-menu--dropdown {
    margin-top: 28px !important;
  }

  .header-menu .mega-menu-wrap > ul > li > ul {
    margin-top: 0 !important;
  }

  .header-menu #mega-menu-wrap-menu-1 .mega-menu-toggle,
  .header-menu .mega-menu-wrap .mega-menu-toggle {
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 32px;
  }

  .header-menu .mega-menu-wrap .mega-menu-toggle .mega-toggle-block:only-child {
    margin-left: 8px !important;
  }

  .header-menu
    .mega-menu-wrap
    .mega-menu-toggle
    .mega-toggle-animated-box
    .mega-toggle-animated-inner,
  .header-menu
    .mega-menu-wrap
    .mega-menu-toggle
    .mega-toggle-animated-box
    .mega-toggle-animated-inner:before,
  .header-menu
    .mega-menu-wrap
    .mega-menu-toggle
    .mega-toggle-animated-box
    .mega-toggle-animated-inner:after {
    width: 30px !important;
  }

  .header-menu
    .mega-menu-wrap
    .mega-menu-toggle
    .mega-toggle-animated-box
    .mega-toggle-animated-inner:before {
    left: 7px;
  }

  .header-menu
    .mega-menu-wrap
    .mega-menu-toggle.mega-menu-open
    .mega-toggle-block:only-child {
    margin-left: 14px !important;
  }

  .header-menu ul.mega-menu li > ul.mega-sub-menu .service-menu-list-wrapper {
    box-shadow: none;
  }

  .header-menu ul.mega-menu {
    margin-top: 35px !important;
    max-height: calc(100vh - 105.11px) !important;
    overflow: auto !important;
    filter: drop-shadow(
      0px 10px 5px rgb(from var(--e-global-color-text) r g b / 10%)
    );
  }

  .header-menu ul.mega-menu li > ul.mega-sub-menu {
    filter: none;
  }

  .header-menu
    .mega-menu.max-mega-menu
    > .mega-menu-item.mega-menu-megamenu
    > .mega-sub-menu,
  .header-menu
    .mega-menu.max-mega-menu
    > .mega-menu-item.mega-menu-flyout
    .mega-sub-menu {
    padding: 0 !important;
    margin-top: 0 !important;
    filter: none !important;
  }

  .header-menu
    #mega-menu-wrap-menu-1
    #mega-menu-menu-1
    > li.mega-menu-item
    > a.mega-menu-link,
  .header-menu
    #mega-menu-wrap-max_mega_menu_1
    #mega-menu-max_mega_menu_1
    > li.mega-menu-item
    > a.mega-menu-link {
    display: flex;
    padding: 0 20px;
  }

  .header-menu .mega-menu-wrap > ul > li > a.mega-menu-link:after {
    display: none !important;
  }

  .header-menu
    #mega-menu-wrap-menu-1
    #mega-menu-menu-1
    > li.mega-menu-item
    > ul
    li
    a.mega-menu-link {
    padding: 0 30px !important;
  }
}

@media only screen and (max-width: 767px) {
  .main-header.elementor-sticky.elementor-sticky--effects .header-logo img {
    max-width: 150px;
  }

  .main-header.elementor-sticky.elementor-sticky--effects
    .header-menu
    .elementor-nav-menu__container.elementor-nav-menu--dropdown {
    margin-top: 23px !important;
  }

  .header-menu ul.mega-menu {
    margin-top: 26px !important;
    max-height: calc(100vh - 83.83px) !important;
  }

  .services-menu-conatiner .elementor-widget-heading {
    position: initial !important;
  }

  .services-menu-img img {
    aspect-ratio: 1 / 0.9;
  }
}

@media only screen and (max-width: 1024px) {
  .header-menu ul.mega-menu,
  .header2-container .header-menu ul.mega-menu {
    margin-top: 20px !important;
  }
}

/*
 * Home Page
 * */

/*
 * 	Home Page CSS
 * */

.hero-section:before {
  clip-path: polygon(
    calc(59% - 120px) 0,
    100% 0,
    100% 100%,
    calc(53% - 700px) 100%
  );
}

.home-service-cta {
  transition: all 0.4s ease-in-out;
}

.home-service-cta:hover {
  transform: translateY(-5px);
}

.home-service-cta
  .elementor-cta
  .elementor-cta__bg-wrapper
  .elementor-cta__bg-overlay {
  background: linear-gradient(
    180deg,
    rgba(1, 10, 62, 0) 0%,
    rgba(1, 10, 62, 0.8) 100%
  );
}

.home-service-cta .elementor-cta .elementor-icon-wrapper {
  position: absolute;
  top: 30px;
  right: 30px;
  width: auto;
  height: auto;
}

.home-service-cta .elementor-cta .elementor-icon-wrapper .elementor-icon {
  position: relative;
}

.home-service-cta
  .elementor-cta
  .elementor-icon-wrapper
  .elementor-icon:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--e-global-color-accent);
  border-radius: 50%;
  width: 100%;
  height: 100%;
  transform: scale(0);
  transition: all 0.4s ease-in-out;
}

.home-service-cta:hover
  .elementor-cta
  .elementor-icon-wrapper
  .elementor-icon:before {
  transform: scale(1);
}

.home-who-we-are-img img {
  aspect-ratio: 1 / 1.218;
  object-fit: cover;
}

.home-tab .e-n-tabs-heading {
  background: var(--white-color);
  border: 1px solid rgb(from var(--e-global-color-primary) r g b / 14%);
  border-radius: 10px;
  padding: 5px;
}

/* Service Tab Hover */
.service-tab .e-n-tabs-heading .e-n-tab-title {
  position: relative;
  transition: color 0.3s ease;
}

/* Accent line grows from centre outward on hover / active */
.service-tab .e-n-tabs-heading .e-n-tab-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  right: 50%;
  height: 2px;
  background: var(--e-global-color-accent);
  transition:
    left 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    right 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Accent line follows the slider (JS-driven) or falls back to :hover */
.service-tab .e-n-tabs-heading .e-n-tab-title:hover::after,
.service-tab .e-n-tabs-heading .e-n-tab-title.tab-is-highlighted::after {
  left: 10%;
  right: 10%;
}

/* Collapse accent line on active tab when slider has moved away from it */
.service-tab
  .e-n-tabs-heading
  .e-n-tab-title[aria-selected="true"]:not(.tab-is-highlighted)::after {
  left: 50%;
  right: 50%;
}

.home-work-process-box .elementor-cta__content {
  position: relative;
  z-index: 1;
}

.home-work-process-box .elementor-cta__content:before {
  content: "";
  position: absolute;
  top: auto;
  left: auto;
  right: 0;
  bottom: 0;
  background: var(--white-color);
  border-top-left-radius: 10px;
  width: 110px;
  height: 110px;
  z-index: -1;
}

.home-work-process-box .elementor-icon-wrapper {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 90px;
  height: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.home-work-process-box .elementor-icon-wrapper .elementor-icon {
  background-color: var(--e-global-color-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.home-work-process-box .elementor-icon-wrapper .elementor-icon svg {
  width: 55%;
  height: 55%;
}

.home-work-process-box:hover .elementor-icon-wrapper .elementor-icon {
  background-color: var(--e-global-color-primary);
}

.home-work-process-box:hover .elementor-icon-wrapper .elementor-icon svg {
  fill: var(--white-color) !important;
}

.home-work-process-box .elementor-cta__content .elementor-cta__title {
  position: relative;
  padding-bottom: 25px;
}

.home-work-process-box .elementor-cta__content .elementor-cta__title:before {
  content: "";
  position: absolute;
  top: auto;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(
    90deg,
    rgb(from var(--e-global-color-text) r g b / 18%) 0%,
    transparent 100%
  );
  width: 100%;
  height: 1px;
  transition: all 0.4s ease-in-out;
}

.home-work-process-box:hover
  .elementor-cta__content
  .elementor-cta__title:before {
  background: linear-gradient(90deg, var(--white-color) 0%, transparent 100%);
}

.home-work-process-box .elementor-cta .elementor-ribbon {
  height: auto;
  overflow: visible;
  right: 60px;
  top: 50px;
  transform: rotate(45deg);
  width: auto;
}

.home-work-process-box
  .elementor-cta
  .elementor-ribbon
  .elementor-ribbon-inner {
  margin: 0;
}

.home-work-process-box:hover
  .elementor-cta
  .elementor-ribbon
  .elementor-ribbon-inner {
  color: rgb(from var(--white-color) r g b / 10%);
}

.home-work-process-box
  .elementor-cta
  .elementor-cta__button-wrapper
  .elementor-cta__button {
  position: relative;
  text-decoration-line: underline;
  text-decoration-style: solid;
  text-decoration-skip-ink: auto;
  text-decoration-thickness: auto;
  text-underline-offset: auto;
  text-underline-position: from-font;
  text-transform: uppercase;
  padding-right: 24px;
}

.home-work-process-box
  .elementor-cta
  .elementor-cta__button-wrapper
  .elementor-cta__button:before {
  content: "";
  position: absolute;
  top: 50%;
  left: auto;
  right: 0;
  bottom: auto;
  background: var(--e-global-color-accent);
  mask-image: url("./images/btn-arrow.svg");
  mask-repeat: no-repeat;
  mask-size: cover;
  width: 16px;
  height: 16px;
  transform: translateY(-50%);
  transition: all 0.3s ease-in-out;
}

.home-work-process-box:hover
  .elementor-cta
  .elementor-cta__button-wrapper
  .elementor-cta__button:before {
  background: var(--white-color);
}

/* Card lift — applied to widget-container so the whole unit moves,
   avoiding the clipping artifact from Elementor's overflow on .elementor-cta */
.home-work-process-box .elementor-widget-container {
  transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}

.home-work-process-box:hover .elementor-widget-container {
  transform: translateY(-6px);
}

/* Clip the card cleanly and prevent Elementor's background zoom from
   creating a sub-pixel gap at the mask edge */
.home-work-process-box .elementor-cta {
  overflow: hidden !important;
  isolation: isolate;
}

/* Stop Elementor's animated-content skin from zooming/moving the background on hover */
.home-work-process-box
  .elementor-cta
  .elementor-cta__bg-wrapper
  .elementor-cta__bg,
.home-work-process-box
  .elementor-cta
  .elementor-cta__bg-wrapper
  .elementor-cta__bg-overlay {
  transform: none !important;
  transition: none !important;
}

/* Suppress Elementor's animated-content overlay pseudo-elements */
.home-work-process-box .elementor-cta::before,
.home-work-process-box .elementor-cta::after {
  display: none !important;
}

/* Ribbon: keep white on hover instead of fading to near-invisible */
.home-work-process-box:hover
  .elementor-cta
  .elementor-ribbon
  .elementor-ribbon-inner {
  color: var(--white-color);
}

/* Equal Height Cards — stretch all cards to match the tallest in the row */
/* Force the widget itself to stretch within the flex parent */
.home-work-process-box.elementor-widget {
  align-self: stretch !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Each layer in the chain must fill its parent's height */
.home-work-process-box .elementor-widget-container,
.home-work-process-box .elementor-cta,
.home-work-process-box .elementor-cta__bg-wrapper,
.home-work-process-box .elementor-cta__content {
  height: 100% !important;
  flex: 1 1 auto !important;
}

/* Stack content vertically and push button to bottom */
.home-work-process-box .elementor-cta__content {
  display: flex !important;
  flex-direction: column !important;
}

/* Button wrapper sits at the bottom — auto-margin pushes it down */
.home-work-process-box .elementor-cta__button-wrapper {
  margin-top: auto !important;
}

/* How It Works - Image Box Hover */

/* Whole widget lifts — pseudo-elements (number badge) stay on top via z-index: 2 */
.how-it-work-image-box {
  position: relative;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.how-it-work-image-box:hover {
  transform: translateY(-6px);
}

.how-it-work-image-box::before,
.how-it-work-image-box::after {
  position: relative;
  z-index: 2;
}

/* Circle glow via box-shadow — no filter, no stacking context, no black flash */
.how-it-work-image-box .elementor-image-box-img {
  border-radius: 50%;
  transition: box-shadow 0.4s ease;
}

.how-it-work-image-box:hover .elementor-image-box-img {
  box-shadow: 0 12px 35px rgb(from var(--e-global-color-accent) r g b / 0.45);
}

/* Title letter-spacing nudge + accent underline */
.how-it-work-image-box .elementor-image-box-title {
  position: relative;
  display: inline-block;
  transition: letter-spacing 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.how-it-work-image-box .elementor-image-box-title::after {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 2px;
  background: var(--e-global-color-accent);
  transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.how-it-work-image-box:hover .elementor-image-box-title {
  letter-spacing: 0.03em;
}

.how-it-work-image-box:hover .elementor-image-box-title::after {
  width: 100%;
}

.home-why-choose-img img {
  aspect-ratio: 1 / 1.012;
  object-fit: cover;
}

.home-why-choose-video .elementor-icon-box-wrapper {
  display: grid !important;
  grid-template-columns: 1fr !important;
  justify-items: center !important;
  gap: var(--icon-box-icon-margin, 15px) !important;
}

.home-why-choose-video .elementor-icon-box-icon {
  grid-row: 2 !important;
  margin: 0 !important;
}

.home-why-choose-video .elementor-icon-box-icon .elementor-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transform: rotate(30deg);
}

.home-why-choose-video .elementor-icon-box-content {
  grid-row: 1 !important;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  margin: 0 !important;
}

.home-why-choose-video .elementor-icon-box-content .elementor-icon-box-title {
  margin: 0;
}

.why-choose-list {
  position: relative;
}

.why-choose-list:before > * {
  position: relative;
  z-index: 1;
}

.why-choose-list:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgb(from var(--e-global-color-primary) r g b / 90%);
  border-radius: 10px;
  width: 100%;
  height: 100%;
}

.why-choose-list:after {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  right: auto;
  bottom: 0;
  background: linear-gradient(
    180deg,
    transparent 0%,
    var(--white-color) 50%,
    transparent 100%
  );
  width: 1px;
  height: 105px;
  transform: translate(-10px, 30px);
}

/* Icon Pulse Animation — add class "icon-coin-spin" to the Elementor icon widget */
@keyframes icon-coin-spin-ring {
  0% {
    transform: scale(1);
    opacity: 0.45;
  }
  100% {
    transform: scale(1.5);
    opacity: 0;
  }
}

.icon-coin-spin .elementor-icon-wrapper {
  position: relative;
  isolation: isolate;
}

/* Two rings — hidden by default, fire once on hover */
.icon-coin-spin .elementor-icon-wrapper::before,
.icon-coin-spin .elementor-icon-wrapper::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: var(--e-global-color-secondary);
  opacity: 0;
  z-index: -1;
  pointer-events: none;
}

.icon-coin-spin .elementor-icon-wrapper:hover::before {
  animation: icon-coin-spin-ring 0.9s ease-out 1 forwards;
}

.icon-coin-spin .elementor-icon-wrapper:hover::after {
  animation: icon-coin-spin-ring 0.9s ease-out 1 forwards;
  animation-delay: 0.25s;
}

/* Hover: circle scales up with a springy ease */
.icon-coin-spin .elementor-icon-wrapper {
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.icon-coin-spin .elementor-icon-wrapper:hover {
  transform: scale(1.1);
}

/* Icon wobbles independently inside the circle */
.icon-coin-spin .elementor-icon-wrapper .elementor-icon {
  position: relative;
  z-index: 0;
}

@keyframes icon-3d-flip {
  0% {
    transform: perspective(300px) rotateY(0deg);
  }
  100% {
    transform: perspective(300px) rotateY(360deg);
  }
}

.icon-coin-spin .elementor-icon-wrapper:hover .elementor-icon {
  animation: icon-3d-flip 0.7s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* Why Choose List - Item Hover Effects */
.why-choose-list .elementor-icon-list-item {
  position: relative;
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: default;
}

.why-choose-list .elementor-icon-list-item:hover {
  transform: translateX(8px);
}

/* Accent colour sweep on the icon */
.why-choose-list .elementor-icon-list-item .elementor-icon-list-icon {
  transition: color 0.3s ease;
  position: relative;
  z-index: 1;
}

.why-choose-list .elementor-icon-list-item:hover .elementor-icon-list-icon {
  color: var(--e-global-color-accent) !important;
}

/* Icon spin on hover */
@keyframes why-choose-icon-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.why-choose-list .elementor-icon-list-item:hover .elementor-icon-list-icon svg {
  animation: why-choose-icon-spin 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* Subtle text brighten */
.why-choose-list .elementor-icon-list-item .elementor-icon-list-text {
  transition: letter-spacing 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.why-choose-list .elementor-icon-list-item:hover .elementor-icon-list-text {
  letter-spacing: 0.02em;
}

/* Arrow Icon List Hover Effects — add class "arrow-icon-list" to the Elementor icon list widget */
.arrow-icon-list .elementor-icon-list-item {
  position: relative;
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: default;
}

.arrow-icon-list .elementor-icon-list-item:hover {
  transform: translateX(8px);
}

.arrow-icon-list .elementor-icon-list-item .elementor-icon-list-icon {
  transition: color 0.3s ease;
  flex-shrink: 0;
}

.arrow-icon-list .elementor-icon-list-item:hover .elementor-icon-list-icon {
  color: var(--e-global-color-accent) !important;
}

.arrow-icon-list .elementor-icon-list-item:hover .elementor-icon-list-icon svg {
  animation: why-choose-icon-spin 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.arrow-icon-list .elementor-icon-list-item .elementor-icon-list-text {
  transition: letter-spacing 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.arrow-icon-list .elementor-icon-list-item:hover .elementor-icon-list-text {
  letter-spacing: 0.02em;
}

/* Icon Box Hover Effects — add class "hover-icon-box" to the Elementor icon box widget */
.hover-icon-box .elementor-widget-container {
  transition:
    transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}

.hover-icon-box:hover .elementor-widget-container {
  transform: translateY(-6px);
  box-shadow: 0px 20px 40px -8px
    rgb(from var(--e-global-color-primary) r g b / 15%);
}

/* Icon colour + 3D flip on hover */
.hover-icon-box .elementor-icon-box-icon .elementor-icon {
  transition: color 0.3s ease;
}

.hover-icon-box:hover .elementor-icon-box-icon .elementor-icon {
  color: var(--e-global-color-accent) !important;
}

.hover-icon-box:hover .elementor-icon-box-icon .elementor-icon svg {
  animation: icon-3d-flip 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* Title subtle letter-spacing nudge */
.hover-icon-box .elementor-icon-box-title span {
  display: inline-block;
  transition: letter-spacing 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.hover-icon-box:hover .elementor-icon-box-title span {
  letter-spacing: 0.02em;
}

/* Glow Icon Box Hover — add class "glow-icon-box" to the Elementor icon box widget */
.glow-icon-box .elementor-widget-container {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition:
    transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}

/* Shimmer sweep — diagonal light stripe that crosses the card on hover */
.glow-icon-box .elementor-widget-container::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 55%;
  height: 100%;
  background: linear-gradient(
    105deg,
    transparent 20%,
    rgb(from var(--e-global-color-accent) r g b / 0.07) 50%,
    transparent 80%
  );
  transition: left 0.55s cubic-bezier(0.4, 0, 0.2, 1);
  pointer-events: none;
  z-index: 0;
}

/* Keep card content above the shimmer layer */
.glow-icon-box .elementor-icon-box-wrapper {
  position: relative;
  z-index: 1;
}

/* Card lifts + glowing border/shadow */
.glow-icon-box:hover .elementor-widget-container {
  transform: translateY(-5px);
  box-shadow:
    0 0 0 1px rgb(from var(--white-color) r g b / 60%),
    0 20px 45px -10px rgb(from var(--white-color) r g b / 35%);
}

/* Sweep fires on hover */
.glow-icon-box:hover .elementor-widget-container::before {
  left: 145%;
}

/* Icon colour + 3D flip */
.glow-icon-box .elementor-icon-box-icon .elementor-icon {
  color: var(--white-color) !important;
}

.glow-icon-box:hover .elementor-icon-box-icon .elementor-icon svg {
  animation: icon-3d-flip 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* Title letter-spacing nudge */
.glow-icon-box .elementor-icon-box-title span {
  display: inline-block;
  transition: letter-spacing 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.glow-icon-box:hover .elementor-icon-box-title span {
  letter-spacing: 0.02em;
}

.home-faq-img {
  height: 100%;
}

.home-faq-img img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  height: 100%;
}

.faq-style .e-n-accordion-item-title {
  position: relative;
  overflow: hidden;
  /* Prevent the summary from shrinking when the parent <details>
	   animates its height in a flex-column layout context */
  flex-shrink: 0;
  transition:
    background-color 0.4s ease-in-out,
    color 0.4s ease-in-out,
    box-shadow 0.4s ease-in-out,
    /* On collapse: hold the square corners until the animation finishes */
    border-bottom-left-radius 0s 0.4s,
    border-bottom-right-radius 0s 0.4s;
}

/* Left accent strip */
.faq-style .e-n-accordion-item-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: var(--e-global-color-accent);
  border-radius: 0 3px 3px 0;
  transform: scaleY(0);
  transform-origin: center;
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 1;
}

.faq-style .e-n-accordion-item-title:hover::before,
.faq-style .e-n-accordion-item-title[aria-expanded="true"]::before {
  transform: scaleY(1);
}

.faq-style .e-n-accordion-item-title[aria-expanded="true"] {
  border-bottom-right-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  /* On expand: switch corners instantly — no delay */
  transition:
    background-color 0.4s ease-in-out,
    color 0.4s ease-in-out,
    box-shadow 0.4s ease-in-out,
    border-bottom-left-radius 0s,
    border-bottom-right-radius 0s;
}

.faq-style .e-n-accordion-item-title .e-n-accordion-item-title-header {
  width: calc(100% - 40px);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-style .e-n-accordion-item-title:hover .e-n-accordion-item-title-header {
  transform: translateX(10px);
}

.faq-style .e-n-accordion-item-title .e-n-accordion-item-title-icon {
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  background-color: var(--e-global-color-accent);
  border-radius: 50%;
  flex-shrink: 0;
  transition:
    transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
    background-color 0.3s ease;
}

.faq-style .e-n-accordion-item-title:hover .e-n-accordion-item-title-icon {
  transform: scale(1.2);
}

@media only screen and (max-width: 1024px) {
  .hero-section:before {
    clip-path: unset;
  }

  .home-who-we-are-img img {
    aspect-ratio: 1 / 0.65;
  }

  .home-tab .e-n-tabs-heading {
    border: none;
  }

  .home-tab .e-n-tabs-heading .e-n-tab-title {
    border: 1px solid rgb(from var(--e-global-color-primary) r g b / 14%);
  }

  .home-work-process-box .elementor-icon-wrapper {
    width: 70px;
    height: 70px;
  }

  .home-work-process-box .elementor-cta__content:before {
    width: 90px;
    height: 90px;
  }

  .home-work-process-box .elementor-icon-wrapper .elementor-icon {
    font-size: 35px !important;
  }

  .home-work-process-box .elementor-cta .elementor-ribbon {
    right: 50px;
    top: 25px;
  }
}

@media only screen and (max-width: 767px) {
  .home-service-cta .elementor-cta .elementor-icon-wrapper {
    top: 20px;
    right: 20px;
  }

  .home-who-we-are-img img {
    aspect-ratio: 1 / 1.05;
  }

  .home-work-process-box .elementor-icon-wrapper {
    width: 50px;
    height: 50px;
  }

  .home-work-process-box .elementor-cta__content:before {
    width: 70px;
    height: 70px;
  }

  .home-work-process-box .elementor-icon-wrapper .elementor-icon {
    font-size: 25px !important;
  }

  .home-work-process-box .elementor-cta__content .elementor-cta__title {
    padding-bottom: 20px;
  }

  .home-work-process-box .elementor-cta .elementor-ribbon {
    right: 45px;
    top: 15px;
  }

  .home-why-choose-img img {
    aspect-ratio: 1 / 1.15;
  }

  .why-choose-list:after {
    display: none;
  }

  .faq-style .e-n-accordion-item-title .e-n-accordion-item-title-header {
    width: calc(100% - 35px);
  }

  .faq-style .e-n-accordion-item-title .e-n-accordion-item-title-icon {
    width: 25px;
    height: 25px;
  }
}

/*
 * Service Process Section
 * */

/* Title — instant accent colour + letter-spacing + underline */
.service-process-box .elementor-icon-box-title {
  position: relative;
  display: inline-block;
  transition:
    letter-spacing 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    color 0s;
}

.service-process-box .elementor-icon-box-title::after {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--e-global-color-accent);
  transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.service-process-box:hover .elementor-icon-box-title {
  color: var(--e-global-color-accent) !important;
  letter-spacing: 0.02em;
}

.service-process-box:hover .elementor-icon-box-title::after {
  width: 100%;
}

/*
 * About Us Page CSS
 * */

.page-header ul li:after {
  transform: rotate(15deg);
}

.about-title-dashed-border {
  position: relative;
  padding-bottom: 20px;
}

.about-title-dashed-border:before {
  content: "";
  position: absolute;
  top: auto;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgb(from var(--e-global-color-accent) r g b / 20%);
  mask-image: url("./images/dasha-border.svg");
  mask-repeat: no-repeat;
  mask-position: center center;
  mask-size: cover;
  width: 100%;
  height: 2px;
}

.about-vission-mission-img {
  height: 100%;
}

.about-vission-mission-img img {
  aspect-ratio: 1 / 1.3;
  object-fit: cover;
  height: 100%;
}

.about-four-icon-box-img {
  height: 100%;
}

.about-four-icon-box-img img {
  aspect-ratio: 1 / 1.94;
  object-fit: cover;
  height: 100%;
}

.about-list-image {
  height: 100%;
}

.about-list-image img {
  aspect-ratio: 1 / 0.857;
  object-fit: cover;
  height: 100%;
}

.about-list-container:before {
  top: -80px;
  left: auto;
  right: 0;
  width: 80px;
  height: 80px;
}

.team-social-media {
  position: absolute;
  top: auto;
  left: 0;
  right: 0;
  bottom: 0;
  transform: translateY(-70px);
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease-in-out;
}

.team-container:hover .team-social-media {
  transform: translateY(-120px);
  opacity: 1;
  visibility: visible;
}

/* Team Container — extended hover effects */

/* 1. Whole card floats up */
.team-container {
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}

.team-container:hover {
  transform: translateY(-8px);
}

/* 2. Gradient on the background container behind the image */
.team-container > .e-con-full {
  position: relative;
  isolation: isolate;
}

.team-container > .e-con-full::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgb(from var(--e-global-color-primary) r g b / 0.2) 0%,
    transparent 55%
  );
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
  z-index: -1;
}

.team-container:hover > .e-con-full::after {
  opacity: 1;
}

/* 3. Arrow button — springy pop + swap to primary colour + pulse rings + spin */

/* Box-shadow pulse: starts exactly at the icon border, can never touch the background */
@keyframes team-pulse-ring {
  0% {
    box-shadow: 0 0 0 0px rgb(from var(--e-global-color-accent) r g b / 0.45);
  }
  100% {
    box-shadow: 0 0 0 10px rgb(from var(--e-global-color-accent) r g b / 0);
  }
}

@keyframes team-arrow-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.team-container
  .elementor-widget-icon-box
  .elementor-icon-box-icon
  .elementor-icon {
  transition:
    transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
    background-color 0.3s ease;
}

.team-container:hover
  .elementor-widget-icon-box
  .elementor-icon-box-icon
  .elementor-icon {
  transform: scale(1.2);
  background-color: var(--e-global-color-primary) !important;
  animation: team-pulse-ring 2.5s ease-out infinite;
}

/* Arrow SVG spins when container is hovered, pauses when icon itself is hovered */
.team-container:hover
  .elementor-widget-icon-box
  .elementor-icon-box-icon
  .elementor-icon
  svg {
  animation: team-arrow-spin 5s linear infinite;
}

.team-container:hover
  .elementor-widget-icon-box
  .elementor-icon-box-icon
  .elementor-icon:hover
  svg {
  animation-play-state: paused;
}

/* 4. Name + role slide right */
.team-container .elementor-widget-icon-box .elementor-icon-box-title {
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.team-container .elementor-widget-icon-box .elementor-icon-box-description {
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1) 0.04s;
}

.team-container:hover .elementor-widget-icon-box .elementor-icon-box-title,
.team-container:hover
  .elementor-widget-icon-box
  .elementor-icon-box-description {
  transform: translateX(5px);
}

@media only screen and (max-width: 1024px) {
  .about-vission-mission-img,
  .about-vission-mission-img img,
  .about-four-icon-box-img,
  .about-four-icon-box-img img,
  .about-list-image,
  .about-list-image img,
  .home-faq-img,
  .home-faq-img img {
    height: auto;
  }

  .about-vission-mission-img img {
    aspect-ratio: 1 / 1.1;
  }

  .about-list-container:before {
    top: 0;
    width: 0;
    height: 0;
    display: none;
  }

  .about-list-container .column-3 ul li {
    width: calc(33.33% - 20px);
  }
}

@media only screen and (max-width: 767px) {
  .about-title-dashed-border {
    padding-bottom: 15px;
  }

  .about-four-icon-box-img img {
    aspect-ratio: 1 / 1.5;
  }

  .about-list-container .column-3 ul li {
    width: calc(50% - 5px);
  }
}

/*
 * Blog Archive Page CSS
 * */

.blog-post-featured-img img {
  aspect-ratio: 1 / 0.726;
  object-fit: cover;
}

.blog-loop-grid .elementor-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  row-gap: 10px;
}

.blog-loop-grid .elementor-pagination .page-numbers.prev,
.blog-loop-grid .elementor-pagination .page-numbers.next {
  text-indent: -9999px;
}

.blog-loop-grid .elementor-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background-color: rgb(from var(--e-global-color-text) r g b / 20%);
  transition: all 0.3s ease-in-out;
}

.blog-loop-grid .elementor-pagination .page-numbers:hover,
.blog-loop-grid .elementor-pagination .page-numbers:focus,
.blog-loop-grid .elementor-pagination .page-numbers.current {
  background-color: var(--e-global-color-accent);
}

.blog-loop-grid .elementor-pagination .page-numbers.prev {
  background-image: url("images/arrow-prev.svg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 18px auto;
}

.blog-loop-grid .elementor-pagination .page-numbers.prev:hover,
.blog-loop-grid .elementor-pagination .page-numbers.prev:focus {
  background-image: url("images/arrow-prev-white.svg");
}

.blog-loop-grid .elementor-pagination .page-numbers.next {
  background-image: url("images/arrow-next.svg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 18px auto;
}

.blog-loop-grid .elementor-pagination .page-numbers.next:hover,
.blog-loop-grid .elementor-pagination .page-numbers.next:focus {
  background-image: url("images/arrow-next-white.svg");
}

.blog-loop-grid .elementor-pagination span.page-numbers.prev,
.blog-loop-grid .elementor-pagination span.page-numbers.next {
  display: none;
}

.blog-loop-grid .elementor-pagination .page-numbers.dots {
  color: var(--e-global-color-accent);
}

.blog-loop-grid .elementor-pagination .page-numbers:focus,
.blog-loop-grid .elementor-pagination .page-numbers.dots:hover {
  color: var(--e-global-color-secondary) !important;
}

@media only screen and (max-width: 1024px) {
}

@media only screen and (max-width: 767px) {
  .blog-post-featured-img img {
    aspect-ratio: 1 / 0.66;
  }
}

/*
 * Blog Single CSS
 * */

.blog-single-featured-img img {
  aspect-ratio: 1 / 0.4;
  object-fit: cover;
}

.blog-post-single-left-img img {
  aspect-ratio: 1 / 0.7;
  object-fit: cover;
}

.blog-single-tags ul li span,
.blog-single-tags ul li a {
  display: inline-block !important;
}

.blog-single-tags ul li .elementor-post-info__terms-list {
  font-size: 0;
  color: transparent;
}

.blog-single-tags ul li .elementor-post-info__terms-list span,
.blog-single-tags ul li .elementor-post-info__terms-list a {
  font-size: initial;
  color: var(--white-color);
  background-color: var(--e-global-color-accent);
  border-radius: 10px;
  padding: 15px 30px;
  margin-bottom: 10px;
  transition: all 0.3s ease-in-out;
}

.blog-single-tags ul li .elementor-post-info__terms-list span:not(:last-child),
.blog-single-tags ul li .elementor-post-info__terms-list a:not(:last-child) {
  margin-right: 20px;
}

.blog-single-tags ul li .elementor-post-info__terms-list a:hover {
  background-color: var(--e-global-color-primary);
}

@media only screen and (max-width: 1024px) {
  .blog-single-featured-img img {
    aspect-ratio: 1 / 0.66;
  }

  .blog-post-single-left-img img {
    aspect-ratio: 1 / 0.5;
  }
}

@media only screen and (max-width: 767px) {
  .blog-single-featured-img img {
    aspect-ratio: 1 / 0.8;
  }

  .blog-single-tags ul li .elementor-post-info__terms-list span,
  .blog-single-tags ul li .elementor-post-info__terms-list a {
    padding: 10px 20px;
  }

  .blog-single-tags
    ul
    li
    .elementor-post-info__terms-list
    span:not(:last-child),
  .blog-single-tags ul li .elementor-post-info__terms-list a:not(:last-child) {
    margin-right: 10px;
  }
}

/* 
 * Gravity Form CSS
 * */

.gform_wrapper .gform_heading {
  display: none;
}

.gform_wrapper form .gform-body .gform_fields {
  row-gap: 30px;
  column-gap: 30px;
  --gf-field-gap-x: 30px;
  --gf-field-gap-y: 30px;
}

.gform_wrapper form .gform-body .gform_fields .gfield {
  border-radius: 0;
  box-shadow: none;
}

.gform_wrapper form .gform-body .gform_fields .gfield label {
  font-family: var(--e-global-typography-primary-font-family), Sans-serif;
  font-size: 24px;
  font-weight: var(--e-global-typography-primary-font-weight);
  line-height: var(--e-global-typography-primary-line-height);
  color: var(--e-global-color-accent);
}

.gform_wrapper form .gform-body .gform_fields .gfield .gfield_required {
  font-family: var(--e-global-typography-text-font-family), Sans-serif;
}

.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .gform-field-label--type-sub {
  padding-top: 0;
  margin-bottom: 8px;
}

.gform_wrapper form .gform-body .gform_fields .gfield .ginput_container input,
.gform_wrapper form .gform-body .gform_fields .gfield .ginput_container select,
.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  textarea {
  font-family: var(--e-global-typography-text-font-family), Sans-serif;
  font-size: var(--e-global-typography-text-font-size);
  font-weight: var(--e-global-typography-text-font-weight);
  line-height: var(--e-global-typography-text-line-height);
  color: var(--e-global-color-text);
  background-color: var(--white-color);
  border: 1px solid rgb(from var(--e-global-color-text) r g b / 14%);
  border-radius: 10px;
  box-shadow: none;
  height: auto;
  padding: 15px 20px;
}

.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  input::placeholder,
.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  select::placeholder,
.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  textarea::placeholder,
.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  select::placeholder,
.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  .gf_placeholder {
  color: rgb(from var(--e-global-color-text) r g b / 30%);
}

.gform_wrapper form .gform-body .gform_fields .gfield .ginput_container select {
  background-image: var(--gf-ctrl-select-icon);
  background-position: var(--gf-ctrl-select-icon-position);
  background-repeat: no-repeat;
  background-size: var(--gf-ctrl-select-icon-size);
}

/* If Placeholder Color Was Opacity */
.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  select[data-gtm-form-interact-field-id="0"] {
  color: rgb(from var(--e-global-color-text) r g b / 30%);
}

.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  select
  option {
  background-color: var(--white-color);
}

.gform_wrapper .gform-grid-row {
  margin-inline: 0;
  column-gap: var(--gf-field-gap-x);
  row-gap: var(--gf-field-gap-y);
}

.gform_wrapper .gform-grid-col {
  padding-inline: 0;
}

.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield--type-date
  .ginput_container_date {
  position: relative;
  flex-direction: column;
}

.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield--type-date
  .ginput_container_date
  img {
  position: absolute;
  top: 50%;
  left: auto;
  right: 20px;
  opacity: 1;
  transform: translateY(-50%);
}

.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield--type-date
  .ginput_container_date
  input {
  width: 100%;
}

.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield--type-time
  .ginput_container {
  column-gap: 0;
}

.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield--type-time
  .ginput_container
  .gform-grid-col {
  inline-size: 50%;
}

.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield--type-number
  .ginput_container
  .instruction {
  display: none;
}

.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  input:focus,
.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  select:focus,
.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  textarea:focus,
.gform_wrapper form .gform_footer .gform_button:focus,
.gform_wrapper form .gfield--type-submit .gform-button:focus {
  outline: none !important;
  box-shadow: none;
}

.gform-theme--foundation .gfield textarea.large {
  min-block-size: auto;
}

.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  textarea {
  height: 175px;
}

.gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .validation_message.gfield_validation_message {
  font-family: var(--e-global-typography-text-font-family), Sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: var(--e-global-typography-text-line-height);
  text-transform: capitalize;
  letter-spacing: 0.02em;
  color: #c8221e;
  margin-top: 0;
}

.contact-us-form .gform_validation_errors {
  padding: 10px;
  margin-bottom: 20px;
}

.gform_wrapper form .gform_footer {
  --gf-form-footer-margin-y-start: 30px;
}

/* Submit Button — white sweep fills box from centre outward, text turns accent, border stays white */
.gform_wrapper form .gform_footer .gform_button,
.gform_wrapper form .gfield--type-submit .gform-button {
  position: relative;
  text-align: center;
  font-family:
    var(--e-global-typography-accent-font-family), Sans-serif !important;
  font-size: var(--e-global-typography-accent-font-size) !important;
  font-weight: var(--e-global-typography-accent-font-weight) !important;
  line-height: var(--e-global-typography-accent-line-height) !important;
  color: var(--white-color) !important;
  background-color: var(--e-global-color-accent) !important;
  background-image: linear-gradient(
    to right,
    var(--white-color),
    var(--white-color)
  );
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 0% 100%;
  border: 1px solid var(--white-color) !important;
  border-radius: 10px !important;
  padding: 20px 30px !important;
  transition:
    color 0.4s ease-in-out,
    background-size 0.4s ease-in-out !important;
  box-shadow: none;
}

.gform_wrapper form .gform_footer .gform_button:hover,
.gform_wrapper form .gform_footer .gform_button:focus,
.gform_wrapper form .gfield--type-submit .gform-button:hover,
.gform_wrapper form .gfield--type-submit .gform-button:focus {
  color: var(--e-global-color-accent) !important;
  background-size: 100% 100%;
  border-color: var(--e-global-color-accent) !important;
}

/* Appointment Form CSS */

/* Field labels — flex row so icon sits to the left of label text */
.appointment-form .gform_wrapper .gfield_label,
.appointment-form .gform_wrapper label.gfield_label,
.appointment-form .gform_wrapper legend.gfield_label {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 8px !important;
  color: var(--white-color) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  font-family: inherit !important;
}

/* Shared icon base — applied to all labelled fields */
#field_1_9 .gfield_label::before,
#field_1_3 .gfield_label::before,
#field_1_4 .gfield_label::before,
#field_1_6 .gfield_label::before,
#field_1_7 .gfield_label::before,
#field_1_8 .gfield_label::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  min-width: 16px;
  flex-shrink: 0;
  background-color: var(--white-color);
  mask-position: center center;
  mask-size: contain;
  mask-repeat: no-repeat;
}

/* Per-field icon overrides */
#field_1_9 .gfield_label::before {
  mask-image: url("./images/user.svg");
}
#field_1_3 .gfield_label::before {
  mask-image: url("./images/mail.svg");
}
#field_1_8 .gfield_label::before {
  mask-image: url("/wp-content/uploads/2026/04/call-icon_dynamic.svg");
}
#field_1_4 .gfield_label::before {
  mask-image: url("./images/date.svg");
}
#field_1_6 .gfield_label::before {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z'/%3E%3C/svg%3E");
}
#field_1_7 .gfield_label::before {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z'/%3E%3C/svg%3E");
}

/* White input fields */
.appointment-form
  .gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  input,
.appointment-form
  .gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  select,
.appointment-form
  .gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  textarea {
  background-color: var(--white-color) !important;
  color: #1a1a1a !important;
  border-color: #e2e8f0 !important;
  border-radius: 8px !important;
  padding: 14px 18px !important;
}

/* Placeholder colour — grey on white fields */
.appointment-form
  .gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  input::placeholder,
.appointment-form
  .gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  textarea::placeholder {
  color: #9ca3af;
}

/* Select — dark chevron for white background */
.appointment-form
  .gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  select {
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0.292893 0.292893C0.683417 -0.097631 1.31658 -0.097631 1.70711 0.292893L5 3.58579L8.29289 0.292893C8.68342 -0.0976311 9.31658 -0.0976311 9.70711 0.292893C10.0976 0.683417 10.0976 1.31658 9.70711 1.70711L5.70711 5.70711C5.31658 6.09763 4.68342 6.09763 4.29289 5.70711L0.292893 1.70711C-0.0976311 1.31658 -0.0976311 0.683418 0.292893 0.292893Z' fill='%231a1a1a'/%3E%3C/svg%3E") !important;
}

/* Select options */
.appointment-form
  .gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  select
  option {
  color: #1a1a1a;
}

/* Remove right-side pseudo icons for name/email/phone — replaced by label icons */
.appointment-form
  .gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .name_first::before,
.appointment-form
  .gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container_email::before,
.appointment-form
  .gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container_phone::before {
  display: none !important;
  content: none !important;
}

/* Calendar icon inside the Preferred Date field */
.appointment-form
  .gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container_date {
  position: relative;
}

.appointment-form
  .gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container_date::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 15px;
  background-color: var(--e-global-color-primary);
  mask-image: url("./images/date.svg");
  mask-position: center center;
  mask-size: contain;
  mask-repeat: no-repeat;
  width: 16px;
  height: 16px;
  transform: translateY(-50%);
  pointer-events: none;
  z-index: 1;
}

/* Hide the native browser date-picker indicator so our custom icon shows cleanly */
.appointment-form
  .gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container_date
  input[type="date"]::-webkit-calendar-picker-indicator {
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
}

.appointment-form .gform_wrapper form .gform_footer {
  --gf-form-footer-margin-y-start: 0;
}

/* Submit button — reversed colours: white bg + accent text, sweeps to accent bg + white text on hover */
.appointment-form .gform_wrapper form .gfield--type-submit .gform-button {
  color: var(--e-global-color-accent) !important;
  background-color: var(--white-color) !important;
  background-image: linear-gradient(
    to right,
    var(--e-global-color-accent),
    var(--e-global-color-accent)
  ) !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: 0% 100% !important;
  border: 1px solid var(--white-color) !important;
}

.appointment-form .gform_wrapper form .gfield--type-submit .gform-button:hover,
.appointment-form .gform_wrapper form .gfield--type-submit .gform-button:focus {
  color: var(--white-color) !important;
  background-size: 100% 100% !important;
  border-color: var(--white-color) !important;
}

/* Validation errors */
.appointment-form .gform-theme--framework .gform_validation_errors .gform-icon,
.appointment-form .gform_wrapper .gform_validation_errors {
  border-color: var(--white-color);
}

.appointment-form
  .gform_wrapper
  .gform_validation_errors
  h2.gform_submission_error,
.appointment-form
  .gform-theme--framework
  .gform_validation_errors
  .gform-icon::before,
.appointment-form
  .gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .validation_message.gfield_validation_message {
  color: var(--white-color);
}

/* Footer Form CSS */
.footer-form .gform_wrapper form .gform-body .gform_fields {
  row-gap: 10px;
  column-gap: 10px;
}

.footer-form .gform_wrapper form .gform_footer {
  --gf-form-footer-margin-y-start: 0;
}

.footer-form
  .gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield
  .ginput_container
  input {
  border: 1px solid transparent;
  padding: 10px 20px;
}

.footer-form
  .gform_wrapper
  form
  .gform-body
  .gform_fields
  .gfield.gfield_error
  .ginput_container
  input {
  border-color: var(--gf-form-validation-heading-color);
}

/* Footer form submit — primary background instead of accent, matching hover pattern */
.footer-form .gform_wrapper form .gfield--type-submit .gform-button {
  background-color: var(--e-global-color-primary) !important;
  padding: 15px !important;
}

.footer-form .gform_wrapper form .gfield--type-submit .gform-button:hover,
.footer-form .gform_wrapper form .gfield--type-submit .gform-button:focus {
  background-color: var(--e-global-color-primary) !important;
  border-color: var(--e-global-color-primary) !important;
  color: var(--e-global-color-primary) !important;
}

.footer-form .gform_validation_errors,
.footer-form .gfield .gfield_description {
  display: none;
}

.footer-form .gform_wrapper .gform_confirmation_message {
  font-size: 24px;
}

@media only screen and (max-width: 1024px) {
  .gform_wrapper .gform_confirmation_message {
    /* 		font-size: 24px; */
  }

  .footer-form .gform_wrapper .gform_confirmation_message {
    font-size: 22px;
  }
}

@media only screen and (max-width: 767px) {
  .gform_wrapper form .gform-body .gform_fields {
    column-gap: 0;
    row-gap: 20px;
    --gf-field-gap-x: 0;
    --gf-field-gap-y: 20px;
  }

  .gform_wrapper form .gform_footer {
    --gf-form-footer-margin-y-start: 20px;
  }

  .gform_wrapper
    form
    .gform-body
    .gform_fields
    .gfield
    .validation_message.gfield_validation_message {
    font-size: 12px;
  }

  .gform_wrapper .gform_confirmation_message {
    /* 		font-size: 20px; */
  }

  .footer-form .gform_wrapper form .gform-body .gform_fields {
    column-gap: 0;
    row-gap: 10px;
  }

  .footer-form .gform_wrapper .gform_confirmation_message {
    font-size: 18px;
  }
}
/* Circle Morph Icon Box — add class "icon-circle-morph" alongside "icon-box-icon-center" */
/* On hover: icon background morphs to a circle with transparent fill, white border, white icon colour */

.icon-circle-morph.elementor-widget-icon-box
  .elementor-icon-box-icon
  .elementor-icon {
  transition:
    color 0.3s ease,
    border-radius 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    background-color 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.icon-circle-morph.elementor-widget-icon-box:hover
  .elementor-icon-box-icon
  .elementor-icon {
  border-radius: 50% !important;
  background-color: transparent !important;
  color: var(--white-color) !important;
  box-shadow: inset 0 0 0 2px var(--white-color);
}

/* Circle Morph Icon Box (Light BG variant) — add class "icon-circle-morph-light-bg" alongside "icon-box-icon-center" */
/* On hover: icon background morphs to a circle with transparent fill, accent border, accent icon colour */

.icon-circle-morph-light-bg.elementor-widget-icon-box
  .elementor-icon-box-icon
  .elementor-icon {
  transition:
    color 0.3s ease,
    border-radius 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    background-color 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.icon-circle-morph-light-bg.elementor-widget-icon-box:hover
  .elementor-icon-box-icon
  .elementor-icon {
  border-radius: 50% !important;
  background-color: transparent !important;
  color: var(--e-global-color-accent) !important;
  box-shadow: inset 0 0 0 2px var(--e-global-color-accent);
}

/* Dark Icon Box Hover — add class "dark-icon-box" to icon box widgets on dark sections */
/* Plain SVG icon: white border draws up from bottom around icon, icon floats + accent colour */

/* Container lift */
.dark-icon-box.elementor-widget-icon-box {
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.dark-icon-box.elementor-widget-icon-box:hover {
  transform: translateY(-6px);
}

/* Icon wrapper — white border draws upward from bottom on hover */
/* ::before = left + right sides growing up | ::after = top line drawing across after sides finish */
.dark-icon-box.elementor-widget-icon-box .elementor-icon-box-icon {
  position: relative;
}

.dark-icon-box.elementor-widget-icon-box .elementor-icon-box-icon::before {
  content: "";
  position: absolute;
  bottom: -10px;
  left: -12px;
  right: -12px;
  height: 0;
  border-left: 2px solid var(--white-color);
  border-right: 2px solid var(--white-color);
  transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  pointer-events: none;
}

.dark-icon-box.elementor-widget-icon-box:hover
  .elementor-icon-box-icon::before {
  height: calc(100% + 20px);
}

.dark-icon-box.elementor-widget-icon-box .elementor-icon-box-icon::after {
  content: "";
  position: absolute;
  top: -10px;
  left: -12px;
  width: 0;
  height: 2px;
  background: var(--white-color);
  transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1) 0.4s;
  pointer-events: none;
}

.dark-icon-box.elementor-widget-icon-box:hover .elementor-icon-box-icon::after {
  width: calc(100% + 24px);
}

/* Icon — float up, no rogue background */
.dark-icon-box.elementor-widget-icon-box
  .elementor-icon-box-icon
  .elementor-icon {
  background-color: transparent !important;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.dark-icon-box.elementor-widget-icon-box:hover
  .elementor-icon-box-icon
  .elementor-icon {
  background-color: transparent !important;
  transform: translateY(-5px);
}

/* Title — letter-spacing nudge */
.dark-icon-box.elementor-widget-icon-box .elementor-icon-box-title span {
  transition: letter-spacing 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.dark-icon-box.elementor-widget-icon-box:hover .elementor-icon-box-title span {
  letter-spacing: 0.03em;
}

/* Bottom half — sides grow downward from content top, bottom line draws across */
.dark-icon-box.elementor-widget-icon-box .elementor-icon-box-content {
  position: relative;
}

.dark-icon-box.elementor-widget-icon-box .elementor-icon-box-content::before {
  content: "";
  position: absolute;
  top: 0;
  left: -12px;
  right: -12px;
  height: 0;
  border-left: 2px solid var(--white-color);
  border-right: 2px solid var(--white-color);
  transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  pointer-events: none;
}

.dark-icon-box.elementor-widget-icon-box:hover
  .elementor-icon-box-content::before {
  height: calc(100% + 10px);
}

.dark-icon-box.elementor-widget-icon-box .elementor-icon-box-content::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: -12px;
  width: 0;
  height: 2px;
  background: var(--white-color);
  transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1) 0.4s;
  pointer-events: none;
}

.dark-icon-box.elementor-widget-icon-box:hover
  .elementor-icon-box-content::after {
  width: calc(100% + 24px);
}

/* Accent underline sweeps left → right under title */
.dark-icon-box.elementor-widget-icon-box .elementor-icon-box-title {
  position: relative;
}

.dark-icon-box.elementor-widget-icon-box .elementor-icon-box-title::after {
  content: "";
  position: absolute;
  bottom: -6px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--e-global-color-accent);
  transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.dark-icon-box.elementor-widget-icon-box:hover
  .elementor-icon-box-title::after {
  width: 100%;
}

/* Our Specialized Services Icon Box Hover */

/* Whole box — subtle lift */
.our-specialized-services-icon-box.elementor-widget-icon-box {
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.our-specialized-services-icon-box.elementor-widget-icon-box:hover {
  transform: translateY(-4px);
}

/* Icon circle — fill with accent, border snaps solid, icon colour turns white */
.our-specialized-services-icon-box .elementor-icon-box-icon .elementor-icon {
  transition:
    background-color 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    border-color 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    color 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.our-specialized-services-icon-box:hover
  .elementor-icon-box-icon
  .elementor-icon {
  background-color: var(--e-global-color-accent) !important;
  border-color: var(--e-global-color-accent) !important;
  border-style: solid !important;
  color: var(--white-color) !important;
}

/* Icon SVG — continuous 3D Y-axis spin while hovered */
.our-specialized-services-icon-box:hover
  .elementor-icon-box-icon
  .elementor-icon
  svg {
  animation: icon-3d-flip 1.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

/* Title — accent colour on hover */
.our-specialized-services-icon-box .elementor-icon-box-title span {
  transition: color 0.3s ease;
}

.our-specialized-services-icon-box:hover .elementor-icon-box-title span {
  color: var(--e-global-color-accent);
}

/* Icon Coin Spin (Dark BG variant) — add class "icon-coin-spin-dark-bg" to the Elementor icon widget on dark sections */
/* White circle background, accent icon, white pulse rings */

.icon-coin-spin-dark-bg .elementor-icon-wrapper {
  position: relative;
  isolation: isolate;
  background-color: var(--white-color);
  border-radius: 50%;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* On mobile, elementor-widget-mobile__width-inherit stretches the widget to
   full container width — override it so the circle stays its natural icon size */
@media only screen and (max-width: 767px) {
  .icon-coin-spin-dark-bg.elementor-widget {
    width: auto !important;
  }
}

.icon-coin-spin-dark-bg .elementor-icon-wrapper:hover {
  transform: scale(1.1);
}

/* Two rings — hidden by default, fire once on hover */
.icon-coin-spin-dark-bg .elementor-icon-wrapper::before,
.icon-coin-spin-dark-bg .elementor-icon-wrapper::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: var(--white-color);
  opacity: 0;
  z-index: -1;
  pointer-events: none;
}

.icon-coin-spin-dark-bg .elementor-icon-wrapper:hover::before {
  animation: icon-coin-spin-ring 0.9s ease-out 1 forwards;
}

.icon-coin-spin-dark-bg .elementor-icon-wrapper:hover::after {
  animation: icon-coin-spin-ring 0.9s ease-out 1 forwards;
  animation-delay: 0.25s;
}

/* Icon — accent colour, wobbles independently inside the circle */
.icon-coin-spin-dark-bg .elementor-icon-wrapper .elementor-icon {
  position: relative;
  z-index: 0;
  color: var(--e-global-color-accent) !important;
}

.icon-coin-spin-dark-bg .elementor-icon-wrapper:hover .elementor-icon {
  animation: icon-3d-flip 0.7s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* Sticky header logo (inline SVG) — give it a rendered size on mobile */
@media only screen and (max-width: 1024px) {
  .header2-container .elementor-widget-icon .elementor-icon-wrapper {
    line-height: 0;
  }

  .header2-container
    .elementor-widget-icon
    .elementor-icon-wrapper
    .elementor-icon {
    display: inline-block;
    width: 256.29px;
    height: auto;
    line-height: 0;
  }

  .header2-container
    .elementor-widget-icon
    .elementor-icon-wrapper
    .elementor-icon
    svg {
    width: 100%;
    height: auto;
    display: block;
  }
}

@media only screen and (max-width: 767px) {
  .header2-container
    .elementor-widget-icon
    .elementor-icon-wrapper
    .elementor-icon {
    width: 256.29px;
  }
}

/*
 * Services Carousel (Slick)
 */

/* Reset Elementor's flex layout once Slick takes over */
.services-carousel.slick-initialized {
  display: block !important;
  gap: 0 !important;
  position: relative !important;
}

/* Slick list clips the track; negative margin compensates for card gutters */
.services-carousel .slick-list {
  overflow: hidden;
  margin: 0 -10px;
}

/* Track: stretch slides to equal height */
.services-carousel .slick-track {
  display: flex !important;
  align-items: stretch;
}

/* Individual slide gutter + height */
.services-carousel .slick-slide {
  padding: 0 10px;
  height: auto !important;
}

/* Elementor's inner container must fill the slide */
.services-carousel .slick-slide > div,
.services-carousel .slick-slide .e-con {
  height: 100% !important;
  width: 100% !important;
  max-width: none !important;
  flex: 1 1 auto !important;
}

/* Widget and CTA fill their parent */
.services-carousel .slick-slide .home-service-cta {
  width: 100% !important;
  max-width: none !important;
}

.services-carousel .slick-slide .home-service-cta .elementor-widget-container,
.services-carousel .slick-slide .home-service-cta .elementor-cta {
  height: 100% !important;
}

/* Neutralise Elementor entrance animations — cloned slides must start visible
   or the infinite loop boundary appears as a hard reset */
.services-carousel .elementor-widget,
.services-carousel .elementor-invisible {
  opacity: 1 !important;
  visibility: visible !important;
  animation-name: none !important;
}

/* Nav container sits below the carousel, centres the two arrow buttons */
.services-carousel-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  margin-top: 30px;
}

/* Prev / Next arrow buttons — in-flow, not absolutely positioned */
.services-carousel-nav .slick-prev,
.services-carousel-nav .slick-next {
  position: static !important;
  transform: none;
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  aspect-ratio: 1 / 1;
  flex-shrink: 0;
  background-color: var(--e-global-color-accent);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  display: flex !important;
  align-items: center;
  justify-content: center;
  transition:
    background-color 0.3s ease,
    transform 0.3s ease;
  font-size: 0;
  line-height: 0;
  color: transparent;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 14px 14px;
  padding: 0;
  box-sizing: content-box;
}

.services-carousel-nav .slick-prev {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='15 18 9 12 15 6'%3E%3C/polyline%3E%3C/svg%3E");
}

.services-carousel-nav .slick-next {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 6 15 12 9 18'%3E%3C/polyline%3E%3C/svg%3E");
}

/* Hide Slick's default font-icon ::before */
.services-carousel-nav .slick-prev::before,
.services-carousel-nav .slick-next::before {
  display: none !important;
}

.services-carousel-nav .slick-prev:hover,
.services-carousel-nav .slick-next:hover {
  background-color: var(--e-global-color-primary);
  transform: scale(1.08);
}

/*
 * Mega Menu Icon List
 */

/* Icon box transitions */
.mega-menu-icons .elementor-icon-list-icon {
  transition:
    background-color 0.3s ease-in-out,
    border-radius 0.3s ease-in-out;
}

/* Default icon colour — accent */
.mega-menu-icons .elementor-icon-list-icon i,
.mega-menu-icons .elementor-icon-list-icon svg {
  color: var(--e-global-color-accent) !important;
  fill: var(--e-global-color-accent) !important;
  transition:
    color 0.3s ease-in-out,
    fill 0.3s ease-in-out;
}

/* Hover: accent background circle + white icon */
.mega-menu-icons .elementor-icon-list-item:hover .elementor-icon-list-icon {
  background-color: var(--e-global-color-accent) !important;
  border-radius: 50% !important;
}

.mega-menu-icons .elementor-icon-list-item:hover .elementor-icon-list-icon i,
.mega-menu-icons .elementor-icon-list-item:hover .elementor-icon-list-icon svg {
  color: var(--white-color) !important;
  fill: var(--white-color) !important;
}

/*
 * Reviews Feed Carousel — Redesign (#sb-reviews-container-1)
 */

/* ---- Card shell ---- */
#sb-reviews-container-1 .sb-post-item-wrap {
  background: #ffffff !important;
  border: none !important;
  border-radius: 16px !important;
  box-shadow: none !important;
  padding: 28px !important;
  position: relative !important;
  overflow: hidden !important;
  transition:
    transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  margin-bottom: 0 !important;
}

/* Gradient accent bar across the top of every card */
#sb-reviews-container-1 .sb-post-item-wrap::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(
    90deg,
    var(--e-global-color-primary) 0%,
    var(--e-global-color-accent) 100%
  );
  border-radius: 16px 16px 0 0;
  pointer-events: none;
}

#sb-reviews-container-1 .sb-post-item-wrap:hover {
  transform: translateY(-5px) !important;
  box-shadow: none !important;
}

/* Post item — stack vertically, anchor the decorative quote mark */
#sb-reviews-container-1 .sb-post-item {
  position: relative;
  display: flex;
  flex-direction: column;
}

/* Quotation mark — pinned top-right, replacing the Google icon */
#sb-reviews-container-1 .sb-post-item::before {
  content: "\201C";
  position: absolute;
  top: -10px;
  right: 0;
  font-size: 80px;
  line-height: 1;
  color: var(--e-global-color-accent);
  opacity: 0.25;
  font-family: Georgia, "Times New Roman", serif;
  pointer-events: none;
  z-index: 0;
}

/* ---- Provider icon (Google logo) — hidden ---- */
#sb-reviews-container-1 .sb-item-provider-icon {
  display: none !important;
}

/* ---- Author section ---- */
#sb-reviews-container-1 .sb-item-author-date-ctn {
  padding-right: 0;
}

#sb-reviews-container-1 .sb-item-author-ctn {
  padding: 0 !important;
  margin: 0 !important;
}

#sb-reviews-container-1 .sb-item-author-name {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--e-global-color-primary) !important;
  letter-spacing: 0.01em;
}

/* ---- Stars ---- */
#sb-reviews-container-1 .sb-item-rating {
  margin: 10px 0 14px !important;
  padding: 0 !important;
}

/* ---- Review text ---- */
#sb-reviews-container-1 .sb-item-text {
  font-size: 14px !important;
  line-height: 1.7 !important;
  position: relative;
  z-index: 1;
}

/* "..." read-more link */
#sb-reviews-container-1 .sb-expand a,
#sb-reviews-container-1 .sb-expand a .sb-more {
  color: var(--e-global-color-accent) !important;
  font-weight: 600;
  text-decoration: none;
}

/* ---- Nav arrows — pull out of absolute positioning, place below ---- */
#sb-reviews-container-1 .sbr-owl-nav {
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 32px !important;
  width: 100% !important;
}

#sb-reviews-container-1 .sbr-owl-prev,
#sb-reviews-container-1 .sbr-owl-next {
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 50% !important;
  background-color: transparent !important;
  border: 2px solid var(--e-global-color-primary) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  transition:
    background-color 0.3s ease,
    border-color 0.3s ease !important;
}

#sb-reviews-container-1 .sbr-owl-prev:hover,
#sb-reviews-container-1 .sbr-owl-next:hover {
  background-color: var(--e-global-color-primary) !important;
}

#sb-reviews-container-1 .sbr-owl-prev svg,
#sb-reviews-container-1 .sbr-owl-next svg {
  width: 12px !important;
  height: auto !important;
  color: var(--e-global-color-primary) !important;
  fill: var(--e-global-color-primary) !important;
  display: block !important;
  transition:
    color 0.3s ease,
    fill 0.3s ease !important;
}

#sb-reviews-container-1 .sbr-owl-prev:hover svg,
#sb-reviews-container-1 .sbr-owl-next:hover svg {
  color: #ffffff !important;
  fill: #ffffff !important;
}

/* Reviews — expandable cards */
#sb-reviews-container-1 .sb-post-item-wrap[data-text] {
  cursor: pointer;
}

#sb-reviews-container-1 .sb-post-item-wrap[data-text] .sb-item-text {
  transition: none;
}

/* "Click to collapse" hint shown when expanded */
#sb-reviews-container-1 .sb-post-item-wrap.sbr-expanded .sb-item-text::after {
  content: "Click to collapse";
  display: block;
  margin-top: 10px;
  font-size: 12px;
  font-weight: 600;
  color: var(--e-global-color-accent);
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

/* Reviews — equal-height cards */
#sb-reviews-container-1 .sbr-owl-stage {
  display: flex !important;
  align-items: flex-start !important;
}

#sb-reviews-container-1 .sbr-owl-item {
  display: flex !important;
  flex-direction: column !important;
  flex-shrink: 0 !important;
}

#sb-reviews-container-1 .sb-post-item-wrap {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

#sb-reviews-container-1 .sb-post-item {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
}
