/*
Theme Name: Catchy Labs Theme Child
Theme URI: https://catchylabs.com/
Description: Child theme for the Catchy Labs Elementor Theme WordPress theme.
Author: Bobby Danklefsen
Author URI: https://catchylabs.com/
Template: catchylabs-theme
Version: 1.0.1
Text Domain: cl-elementor
*/

:root {
   --clet-primary: #BF1D2C;
	--clet-text: #333333;
}

/* Put all custom styles here
   ========================================================================== */

header {
   z-index: 1000;
   position: relative;
}

.counter-center .elementor-counter-title {
   text-align: center !important;
}

.pos-relative {
   position: relative !important;
}

main {
   padding-top:135px;
}

@media (max-width:768px) {
   main {
      padding-top:90px;
   }
}

/* Contact form
   Forminator form 436 on the contact page. Scoped so other forms are left alone.
   Forminator's generated CSS uses the same ID + two classes, and it can load
   after this file, so the visual properties use !important.
   Labels stay in the markup for screen readers. The layout uses placeholders
   as the visible labels. The Message textarea has an empty placeholder in
   Forminator; set it to "Tell us about your marketing needs."
   ========================================================================== */

.forminator-ui#forminator-module-436.forminator-design--default {
   font-family: "Public Sans", sans-serif;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-row {
   margin: 0 -8px 16px !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-row-last {
   margin-bottom: 0 !important;
   justify-content: flex-start !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-col {
   padding: 0 8px !important;
   margin-bottom: 0 !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-field {
   position: relative !important;
   margin-bottom: 0 !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-label {
   position: absolute !important;
   width: 1px !important;
   height: 1px !important;
   padding: 0 !important;
   margin: -1px !important;
   overflow: hidden !important;
   clip: rect(0, 0, 0, 0) !important;
   clip-path: inset(50%) !important;
   white-space: nowrap !important;
   border: 0 !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-input,
.forminator-ui#forminator-module-436.forminator-design--default .forminator-textarea,
.forminator-ui#forminator-module-436.forminator-design--default .iti input {
   width: 100% !important;
   background-color: #FFFFFF !important;
   border: 0 !important;
   border-radius: 4px !important;
   box-shadow: none !important;
   min-height: 54px !important;
   padding: 14px 18px !important;
   color: #333333 !important;
   font-family: "Public Sans", sans-serif !important;
   font-size: 16px !important;
   font-weight: 400 !important;
   line-height: 1.4 !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-textarea {
   min-height: 140px !important;
   resize: vertical;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-input::placeholder,
.forminator-ui#forminator-module-436.forminator-design--default .forminator-textarea::placeholder,
.forminator-ui#forminator-module-436.forminator-design--default .iti input::placeholder {
   color: #333333 !important;
   opacity: 1 !important;
   font-family: "Public Sans", sans-serif !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-input:focus,
.forminator-ui#forminator-module-436.forminator-design--default .forminator-textarea:focus,
.forminator-ui#forminator-module-436.forminator-design--default .iti input:focus {
   outline: none !important;
   box-shadow: 0 0 0 2px #325258 !important;
   background-color: #FFFFFF !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .iti {
   width: 100% !important;
   display: block !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .iti input.forminator-input {
   padding-left: 52px !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-select2 + .forminator-select .selection .select2-selection--single[role="combobox"],
.forminator-ui#forminator-module-436.forminator-design--default .forminator-select2 + .forminator-select .selection .select2-selection--multiple[role="combobox"] {
   background-color: #FFFFFF !important;
   border: 0 !important;
   border-radius: 4px !important;
   box-shadow: none !important;
   min-height: 54px !important;
   height: auto !important;
   display: flex !important;
   align-items: center !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-select2 + .forminator-select .selection .select2-selection--single[role="combobox"] .select2-selection__rendered,
.forminator-ui#forminator-module-436.forminator-design--default .forminator-select2 + .forminator-select .selection .select2-selection--multiple[role="combobox"] .select2-selection__rendered {
   color: #333333 !important;
   font-family: "Public Sans", sans-serif !important;
   font-size: 16px !important;
   font-weight: 400 !important;
   line-height: 1.4 !important;
   padding-left: 18px !important;
   padding-right: 36px !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-select2 + .forminator-select .selection .select2-selection__placeholder,
.forminator-ui#forminator-module-436.forminator-design--default .select2-selection__placeholder {
   color: #333333 !important;
   opacity: 1 !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-select2 + .forminator-select .selection .select2-selection__arrow {
   height: 54px !important;
   top: 0 !important;
   color: #6b7c80 !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-select2 + .forminator-select .selection .select2-selection--single[role="combobox"]:hover,
.forminator-ui#forminator-module-436.forminator-design--default .forminator-select2 + .forminator-select .selection .select2-selection--multiple[role="combobox"]:hover,
.forminator-ui#forminator-module-436.forminator-design--default .forminator-select2 + .forminator-select .selection .select2-selection--single[role="combobox"]:focus,
.forminator-ui#forminator-module-436.forminator-design--default .forminator-select2 + .forminator-select .selection .select2-selection--multiple[role="combobox"]:focus,
.forminator-ui#forminator-module-436.forminator-design--default .forminator-select2 + .forminator-select.select2-container--open .selection .select2-selection--single[role="combobox"],
.forminator-ui#forminator-module-436.forminator-design--default .forminator-select2 + .forminator-select.select2-container--open .selection .select2-selection--multiple[role="combobox"] {
   background-color: #FFFFFF !important;
   border-color: transparent !important;
   box-shadow: 0 0 0 2px #325258 !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-select2 + .forminator-select .selection .select2-selection--multiple[role="combobox"] .select2-selection__rendered {
   display: flex !important;
   align-items: center !important;
   flex-wrap: wrap !important;
   min-height: 54px !important;
   padding: 8px 12px !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .select2-search__field {
   font-family: "Public Sans", sans-serif !important;
   font-size: 16px !important;
   color: #333333 !important;
   background: transparent !important;
   border: 0 !important;
   box-shadow: none !important;
   margin: 0 !important;
   height: 28px !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .select2-search__field::placeholder {
   color: #333333 !important;
   opacity: 1 !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-select2-selections > li {
   background-color: #325258 !important;
   color: #FFFFFF !important;
   border-radius: 6px !important;
   font-family: "Public Sans", sans-serif !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-select2-selections > li > button {
   color: #FFFFFF !important;
}

.forminator-select-dropdown-container--open .forminator-custom-form-436.forminator-dropdown--default {
   background-color: #FFFFFF !important;
   border: 0 !important;
   border-radius: 4px !important;
   overflow: hidden !important;
   box-shadow: 0 8px 24px rgba(50, 82, 88, 0.14) !important;
   font-family: "Public Sans", sans-serif !important;
}

.forminator-select-dropdown-container--open .forminator-custom-form-436.forminator-dropdown--default .select2-results__option {
   font-family: "Public Sans", sans-serif !important;
   font-size: 16px !important;
   color: #333333 !important;
   background-color: #FFFFFF !important;
   padding: 10px 14px !important;
}

.forminator-select-dropdown-container--open .forminator-custom-form-436.forminator-dropdown--default .select2-results__option--highlighted,
.forminator-select-dropdown-container--open .forminator-custom-form-436.forminator-dropdown--default .select2-results__option--selected,
.forminator-select-dropdown-container--open .forminator-custom-form-436.forminator-dropdown--default .select2-results__option--highlighted span,
.forminator-select-dropdown-container--open .forminator-custom-form-436.forminator-dropdown--default .select2-results__option--selected span {
   background-color: #325258 !important;
   color: #FFFFFF !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-field.forminator-has_error .forminator-input,
.forminator-ui#forminator-module-436.forminator-design--default .forminator-field.forminator-has_error .forminator-textarea,
.forminator-ui#forminator-module-436.forminator-design--default .forminator-field.forminator-has_error .forminator-select2 + .forminator-select .selection .select2-selection--single[role="combobox"],
.forminator-ui#forminator-module-436.forminator-design--default .forminator-field.forminator-has_error .forminator-select2 + .forminator-select .selection .select2-selection--multiple[role="combobox"] {
   box-shadow: inset 0 0 0 1px #E51919 !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-error-message {
   margin-top: 6px !important;
   font-family: "Public Sans", sans-serif !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-button-submit {
   width: auto !important;
   min-width: 180px !important;
   height: auto !important;
   display: inline-flex !important;
   align-items: center !important;
   justify-content: center !important;
   background-color: #325258 !important;
   color: #FFFFFF !important;
   border: 0 !important;
   border-radius: 2px !important;
   box-shadow: none !important;
   padding: 14px 36px !important;
   margin-top: 4px !important;
   font-family: "Public Sans", sans-serif !important;
   font-size: 15px !important;
   font-weight: 600 !important;
   letter-spacing: 1.4px !important;
   text-transform: uppercase !important;
   line-height: 1.2 !important;
   cursor: pointer;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-button-submit:hover,
.forminator-ui#forminator-module-436.forminator-design--default .forminator-button-submit:focus {
   background-color: #243C44 !important;
   color: #FFFFFF !important;
}

.forminator-ui#forminator-module-436.forminator-design--default .forminator-response-message {
   font-family: "Public Sans", sans-serif !important;
}

@media (max-width: 767px) {
   .forminator-ui#forminator-module-436.forminator-design--default .forminator-col-6 {
      width: 100% !important;
      max-width: 100% !important;
      flex: 0 0 100% !important;
   }

   .forminator-ui#forminator-module-436.forminator-design--default .forminator-row {
      flex-wrap: wrap !important;
   }

   .forminator-ui#forminator-module-436.forminator-design--default .forminator-button-submit {
      width: 100% !important;
   }
}


/* Header and footer
   The theme menu switches to the hamburger at 1024px, so these rules use that
   same cutoff rather than the Elementor laptop breakpoint.
   ========================================================================== */

#ch-header,
#ch-header-inner,
#ch-header-tools,
#ch-header-nav {
   overflow: visible;
   position: relative;
   z-index: 20;
}

#ch-header-inner {
   display: flex;
   align-items: center;
   flex-wrap: nowrap;
}

#ch-header-logo,
#ch-header-tools,
#ch-header-nav,
#ch-header-cta {
   width: auto !important;
   max-width: 100%;
   --width: auto;
   flex: 0 0 auto !important;
}

#ch-header-tools {
   display: flex;
   align-items: center;
   margin-left: auto !important;
   gap: 4px;
}

#ch-header-nav .nav-menu .navbar .menu > li:after,
#ch-header-nav .nav-menu .navbar .menu > li:before {
   content: none;
   display: none;
}

#ch-header-nav .nav-menu .navbar .menu > li > a {
   font-family: "Public Sans", sans-serif;
   font-weight: 700;
   letter-spacing: 1.4px;
   text-transform: uppercase;
   color: #325258;
   text-decoration: none;
   line-height: 1.3;
}

#ch-header-nav .nav-menu .navbar .menu > li > a:hover,
#ch-header-nav .nav-menu .navbar .menu > li.current-menu-item > a,
#ch-header-nav .nav-menu .navbar .menu > li.current_page_item > a,
#ch-header-nav .nav-menu .navbar .menu > li.current-menu-parent > a,
#ch-header-nav .nav-menu .navbar .menu > li.current_page_ancestor > a {
   color: #243C44;
   background: transparent;
}

#ch-header-nav .nav-menu .navbar .menu ul.sub-menu {
   box-shadow: 0 14px 32px rgba(36, 60, 68, 0.14);
   padding: 0px 0;
   min-width: 260px;
   background-color: #B8CCD1;
   border-radius: 0;
}

#ch-header-nav .nav-menu .navbar .menu ul.sub-menu > li {
   display: block;
   width: 100%;
}

#ch-header-nav .nav-menu .navbar .menu ul.sub-menu > li:after {
   content: none;
   display: none;
}

#ch-header-nav .nav-menu .navbar .menu ul.sub-menu > li > a {
   font-family: "Public Sans", sans-serif;
   font-weight: 700;
   font-size: 15px;
   letter-spacing: 0;
   text-transform: uppercase;
   padding: 7px 18px;
   text-decoration: none;
}

#ch-header-nav .nav-menu .navbar-toggle,
#ch-header-nav .nav-menu .navbar-toggle i {
   color: #325258;
   line-height: 1;
}

#ch-header-nav .nav-menu .navbar-toggle {
   display: inline-block;
   padding: 8px;
}

#ch-header-nav .nav-menu .navbar-toggle:hover,
#ch-header-nav .nav-menu .navbar-toggle:hover i {
   color: #243C44;
}

@media (min-width: 1025px) {
   #ch-header-nav .nav-menu .navbar-toggle {
      display: none;
   }
}

@media (max-width: 1024px) {
   #ch-header-nav {
      order: 2;
   }

   #ch-header-cta {
      order: 1;
   }
}

@media (max-width: 767px) {
   #ch-header-cta .elementor-button {
      font-size: 11px;
      letter-spacing: 0.8px;
      padding: 11px 12px;
   }
}

/* Mobile menu
   The hamburger opens the theme's #full-menu. These rules restyle that
   panel only. The desktop bar is left alone.
   The kit and the theme both style raw buttons, so the panel close mark
   is a div, not a button.
   ========================================================================== */

#full-menu {
   background: rgba(36, 60, 68, 0.46);
   overflow: hidden;
}

#full-menu .full-menu-container {
   position: relative;
   box-sizing: border-box;
   display: flex;
   flex-direction: column;
   width: min(440px, 100%);
   max-width: none;
   height: 100%;
   margin: 0 0 0 auto;
   padding: 28px 32px 28px;
   background: #FCF7F4;
   box-shadow: -24px 0 60px rgba(18, 32, 34, 0.18);
}

#full-menu .mobile-menu {
   flex: 1 1 auto;
   min-height: 0;
   overflow-y: auto;
   width: auto;
   height: auto;
   margin: 0;
   padding: 0;
}

#full-menu .ch-full-menu-logo {
   display: block;
   flex: 0 0 auto;
   width: 156px;
   max-width: calc(100% - 56px);
   margin: 2px 0 22px;
   line-height: 0;
}

#full-menu .ch-full-menu-logo img {
   display: block;
   width: 100%;
   height: auto;
}

#full-menu .full-menu-container::before {
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   height: 6px;
   background: #325258;
}

#full-menu .close {
   top: 24px;
   right: 22px;
   width: 44px;
   height: 44px;
   display: flex;
   align-items: center;
   justify-content: center;
   margin: 0;
   padding: 0;
   color: #325258;
   font-size: 0;
   line-height: 1;
   text-align: center;
   cursor: pointer;
}

#full-menu .close i {
   color: #325258;
   font-size: 30px;
   line-height: 1;
}

#full-menu .menu {
   padding-top: 12px;
}

#full-menu .menu li {
   margin: 0;
   padding: 0;
}

#full-menu .menu > li {
   border-bottom: 1px solid rgba(50, 82, 88, 0.16);
}

#full-menu .menu > li:last-child {
   border-bottom: 0;
}

#full-menu .menu li a {
   font-family: "Public Sans", sans-serif;
   font-size: 16px;
   font-weight: 700;
   letter-spacing: 1.2px;
   line-height: 1.3;
   text-transform: uppercase;
   color: #325258;
   text-decoration: none;
   padding: 18px 40px 18px 0;
}

#full-menu .menu > li > a:hover,
#full-menu .menu > li.current-menu-item > a,
#full-menu .menu > li.current_page_item > a,
#full-menu .menu > li.current-menu-ancestor > a,
#full-menu .menu > li.current_page_ancestor > a {
   color: #243C44;
}

#full-menu .menu > li.current-menu-item > a,
#full-menu .menu > li.current_page_item > a {
   box-shadow: inset 3px 0 0 #89B5BD;
   padding-left: 14px;
}

#full-menu .menu li .sub-menu {
   padding: 0 0 10px;
}

#full-menu .menu li .sub-menu li {
   margin: 0;
   padding: 0;
   border: 0;
}

#full-menu .menu li .sub-menu li a {
   font-size: 14px;
   font-weight: 600;
   letter-spacing: 0.4px;
   line-height: 1.35;
   text-transform: uppercase;
   color: #4E656A;
   padding: 11px 12px 11px 14px;
}

#full-menu .menu li .sub-menu li a:hover,
#full-menu .menu li .sub-menu li.current-menu-item > a,
#full-menu .menu li .sub-menu li.current_page_item > a {
   color: #243C44;
   background: rgba(184, 204, 209, 0.45);
}

#full-menu .plus {
   top: 12px;
   right: 0;
   width: 36px;
   height: 36px;
}

#full-menu .plus span {
   background: #325258;
}

@media (max-width: 767px) {
   #full-menu .full-menu-container {
      width: 100%;
      padding: 22px 24px 32px;
   }

   #full-menu .ch-full-menu-logo {
      width: 132px;
      margin-bottom: 16px;
   }

   #full-menu .close {
      top: 18px;
      right: 14px;
      font-size: 0;
      line-height: 1;
   }

   #full-menu .menu li a {
      font-size: 15px;
      padding-top: 16px;
      padding-bottom: 16px;
   }
}

#ch-footer .elementor-widget-heading,
#ch-footer .elementor-widget-text-editor,
#ch-footer .elementor-widget-icon-list,
#ch-footer .elementor-widget-html,
#ch-footer .elementor-widget-social-icons,
#ch-footer .elementor-widget-image,
#ch-footer .elementor-widget-divider {
   margin-bottom: 0;
}

#ch-footer-brand,
#ch-footer-aside {
   max-width: 100%;
}

#ch-footer-logo {
   flex: 1 1 360px !important;
   width: auto !important;
   max-width: 360px;
   min-width: 0;
   --width: auto;
}

#ch-footer-logo img {
   width: 100% !important;
   height: auto !important;
   max-width: 360px;
}

#ch-footer-expertise {
   flex: 0 0 250px !important;
   width: auto !important;
   min-width: 250px;
}

#ch-footer-contact > .e-con {
   flex: 1 1 220px;
   max-width: 100%;
}

#ch-footer a {
   color: #325258;
   text-decoration: none;
}

#ch-footer a:hover {
   color: #243C44;
}

#ch-footer-contact a {
   overflow-wrap: anywhere;
}

#ch-footer .elementor-icon-list-item a {
   align-items: center;
}

#ch-footer .elementor-icon-list-text {
   font-family: "Public Sans", sans-serif;
   color: #325258;
}

#ch-footer .elementor-icon-list-item:hover .elementor-icon-list-text {
   color: #243C44;
}

#ch-footer-social .elementor-social-icons-wrapper,
#ch-footer-social .elementor-grid {
   display: flex;
   flex-wrap: wrap;
   gap: 8px;
   margin: 0;
   padding: 0;
}

#ch-footer-social .elementor-social-icon {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 32px;
   height: 32px;
   background: #325258;
   color: #ffffff;
   border-radius: 2px;
   font-size: 14px;
   line-height: 1;
}

#ch-footer-social .elementor-social-icon:hover {
   background: #243C44;
   color: #ffffff;
}

#ch-footer-social .elementor-social-icon i {
   color: #ffffff;
}

.ch-blogs {
   margin: 2px 0 0;
   font-family: "Public Sans", sans-serif;
   font-size: 16px;
   line-height: 1.4;
}

#ch-footer-badges {
   align-items: flex-end;
}

#ch-footer-badges img {
   display: block;
   height: auto;
}

#ch-footer-badges .e-con > .elementor-widget-image img {
   width: 72px;
}

#ch-footer-badges > .elementor-widget-image img {
   width: 150px;
}

#ch-footer-copy,
#ch-footer-copy p {
   margin: 0;
   color: #4E656A;
   font-family: "Public Sans", sans-serif;
   line-height: 1.4;
   text-align: right;
}

.ch-newsletter {
   position: relative;
   margin: 0;
}

.ch-newsletter .screen-reader-text {
   position: absolute;
   width: 1px;
   height: 1px;
   padding: 0;
   margin: -1px;
   overflow: hidden;
   clip: rect(0, 0, 0, 0);
   white-space: nowrap;
   border: 0;
}

.ch-newsletter-row {
   display: flex;
   align-items: stretch;
   gap: 10px;
}

#ch-footer .ch-newsletter input[type="email"] {
   flex: 1 1 auto;
   width: auto;
   min-width: 0;
   margin: 0;
   border: 0;
   border-radius: 2px;
   background: #ffffff;
   color: #325258;
   font-family: "Public Sans", sans-serif;
   font-size: 15px;
   line-height: 1.4;
   padding: 14px 16px;
   box-shadow: none;
}

#ch-footer .ch-newsletter input[type="email"]::placeholder {
   color: #8AA0A4;
   opacity: 1;
}

#ch-footer .ch-newsletter input[type="email"]:focus {
   outline: 2px solid #325258;
   outline-offset: 1px;
}

#ch-footer .ch-newsletter button,
#ch-footer .ch-newsletter button:not(:disabled) {
   flex: 0 0 auto;
   margin: 0;
   border: 0;
   border-radius: 2px;
   background: #325258;
   color: #ffffff;
   font-family: "Public Sans", sans-serif;
   font-weight: 600;
   font-size: 13px;
   letter-spacing: 1.2px;
   line-height: 1.2;
   text-transform: uppercase;
   padding: 14px 22px;
   white-space: nowrap;
}

#ch-footer .ch-newsletter button:hover,
#ch-footer .ch-newsletter button:focus,
#ch-footer .ch-newsletter button:not(:disabled):hover,
#ch-footer .ch-newsletter button:not(:disabled):focus {
   background: #243C44;
   color: #ffffff;
   border: 0;
}

@media (max-width: 1024px) {
   #ch-footer-brand,
   #ch-footer-aside {
      flex-basis: 100%;
      width: 100% !important;
      --width: 100%;
   }
}

@media (max-width: 767px) {
   #ch-footer-logo {
      flex: 0 0 auto !important;
      width: 220px !important;
      max-width: 70%;
   }

   #ch-footer-logo img {
      width: 220px !important;
      max-width: 100%;
   }

   #ch-footer-expertise {
      flex: 0 0 auto !important;
      width: 100% !important;
   }

   #ch-footer-badges,
   #ch-footer-badges .e-con {
      align-items: flex-start;
      justify-content: flex-start;
   }

   #ch-footer-copy,
   #ch-footer-copy p {
      text-align: left;
   }

   .ch-newsletter-row {
      flex-direction: column;
   }

   #ch-footer .ch-newsletter button,
   #ch-footer .ch-newsletter button:not(:disabled) {
      width: 100%;
   }
}

/* Homepage decorations
   Squares and dashes from the layout. They are not Elementor widgets,
   because nobody edits them in the builder. Copy, links, and spacing stay
   in the template.
   Measured from dev/_layouts/Home.png against a 2990px content column.
   ========================================================================== */

#ch-home-video,
#ch-home-process,
#ch-home-results {
   --ch-gutter: max(0px, calc((100vw - 1300px) / 2));
}

/* Video: one accent bar flush with the left side of the cover. The widget
   clips its own overflow, which would hide a bar that sits outside it. */
#ch-home-video .elementor-widget-video {
   position: relative;
   overflow: visible;
}

#ch-home-video .elementor-widget-video::after {
   content: "";
   position: absolute;
   top: 36%;
   right: 100%;
   width: 12.7%;
   height: 51%;
   background: var(--e-global-color-accent, #89B5BD);
   pointer-events: none;
   z-index: 2;
}

/* Process: corner tabs and the bottom dash sit on the full-bleed band.
   The two larger squares track the card row so they stay behind step 01
   and step 04. Color is the layout teal, which is not a kit color. */
#ch-home-process {
   --ch-sq: #6B929A;
   background-image:
      linear-gradient(var(--ch-sq), var(--ch-sq)),
      linear-gradient(var(--ch-sq), var(--ch-sq)),
      linear-gradient(var(--ch-sq), var(--ch-sq));
   background-repeat: no-repeat;
   background-size:
      calc(var(--ch-gutter) * 0.96) 94px,
      calc(var(--ch-gutter) * 0.41) 30px,
      238px 31px;
   background-position:
      left top,
      right top,
      calc(50% + 195px) bottom;
}

#ch-home-process .ch-process-cards {
   position: relative;
   z-index: 1;
   overflow: visible;
}

#ch-home-process .ch-process-cards::before,
#ch-home-process .ch-process-cards::after {
   content: "";
   position: absolute;
   width: 18.3%;
   height: 95%;
   background: var(--ch-sq, #6B929A);
   z-index: -1;
   pointer-events: none;
}

#ch-home-process .ch-process-cards::before {
   left: -2.9%;
   top: 22%;
}

#ch-home-process .ch-process-cards::after {
   right: -3.1%;
   top: -16%;
}

/* Results: mist dashes between the four counters, plus a dash in each
   side gutter. The side dashes run from the screen edge to the numbers. */
#ch-home-results .ch-home-stats {
   background-image:
      linear-gradient(var(--e-global-color-mist, #B8CCD1), var(--e-global-color-mist, #B8CCD1)),
      linear-gradient(var(--e-global-color-mist, #B8CCD1), var(--e-global-color-mist, #B8CCD1)),
      linear-gradient(var(--e-global-color-mist, #B8CCD1), var(--e-global-color-mist, #B8CCD1));
   background-repeat: no-repeat;
   background-size: 61px 22px;
   background-position: 23% 40px, 50% 40px, 77% 40px;
}

#ch-home-results .ch-home-stats::before,
#ch-home-results .ch-home-stats::after {
   content: "";
   position: absolute;
   top: 40px;
   height: 22px;
   width: max(0px, calc(50vw - 50%));
   background: var(--e-global-color-mist, #B8CCD1);
   pointer-events: none;
}

#ch-home-results .ch-home-stats::before {
   left: calc(50% - 50vw);
}

#ch-home-results .ch-home-stats::after {
   right: calc(50% - 50vw);
}

@media (max-width: 1300px) {
   #ch-home-process {
      background-size:
         0 0,
         0 0,
         18.3vw 31px;
      background-position:
         left top,
         right top,
         calc(50% + 15vw) bottom;
   }
}

@media (max-width: 1024px) {
   #ch-home-video .elementor-widget-video::after,
   #ch-home-process .ch-process-cards::before,
   #ch-home-process .ch-process-cards::after,
   #ch-home-results .ch-home-stats::before,
   #ch-home-results .ch-home-stats::after {
      content: none;
   }

   #ch-home-process,
   #ch-home-results .ch-home-stats {
      background-image: none;
   }
}

/* Branding logo carousel
   Same carousel as chattertulsa.com/branding: arrows sit outside the
   slides, and the arrow shapes are the triangles from that carousel.
   The border width and color live on the Image Carousel widget.
   ========================================================================== */

#ch-brand-logos.elementor-arrows-position-outside .swiper {
   width: calc(100% - 150px);
   margin-left: auto;
   margin-right: auto;
}

#ch-brand-logos .elementor-swiper-button {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 28px;
   height: 46px;
   background-repeat: no-repeat;
   background-position: center;
   background-size: 28px 46px;
}

#ch-brand-logos .elementor-swiper-button svg {
   display: none;
}

#ch-brand-logos .elementor-swiper-button-prev {
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath fill='%23d9d9d9' d='M0,21.7L27,0v43.3L0,21.7Z'/%3E%3C/svg%3E");
}

#ch-brand-logos .elementor-swiper-button-next {
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath fill='%23d9d9d9' d='M27,21.7L0,43.3V0l27,21.7Z'/%3E%3C/svg%3E");
}

#ch-brand-logos .swiper-pagination-bullet {
   opacity: 1;
}

#ch-brand-logos .swiper-pagination-bullet-active {
   width: 22px;
   border-radius: 8px;
}

@media (max-width: 768px) {
   #ch-brand-logos.elementor-arrows-position-outside .swiper {
      width: calc(100% - 50px);
   }

   #ch-brand-logos .elementor-swiper-button {
      width: 14px;
      height: 22px;
      background-size: 14px 22px;
   }
}

/* Web design site carousel
   Same triangle arrows as the live website-design carousel. The mockup
   images already include the laptop and gray panel, so the widget has
   no border. Spacing is set on the Image Carousel widget (10px).
   ========================================================================== */

#ch-web-sites.elementor-arrows-position-outside .swiper {
   width: calc(100% - 150px);
   margin-left: auto;
   margin-right: auto;
}

#ch-web-sites .elementor-swiper-button {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 28px;
   height: 46px;
   background-repeat: no-repeat;
   background-position: center;
   background-size: 28px 46px;
}

#ch-web-sites .elementor-swiper-button svg {
   display: none;
}

#ch-web-sites .elementor-swiper-button-prev {
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath fill='%23d9d9d9' d='M0,21.7L27,0v43.3L0,21.7Z'/%3E%3C/svg%3E");
}

#ch-web-sites .elementor-swiper-button-next {
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath fill='%23d9d9d9' d='M27,21.7L0,43.3V0l27,21.7Z'/%3E%3C/svg%3E");
}

#ch-web-sites .swiper-pagination-bullet {
   opacity: 1;
}

#ch-web-sites .swiper-pagination-bullet-active {
   width: 22px;
   border-radius: 8px;
}

@media (max-width: 768px) {
   #ch-web-sites.elementor-arrows-position-outside .swiper {
      width: calc(100% - 50px);
   }

   #ch-web-sites .elementor-swiper-button {
      width: 14px;
      height: 22px;
      background-size: 14px 22px;
   }
}

/* Traditional advertising carousel
   Same outside triangle arrows and narrowed track as the live
   traditional-advertising image carousel. Spacing and lightbox
   live on the Image Carousel widget.
   ========================================================================== */

#ch-trad-ads.elementor-arrows-position-outside .swiper {
   width: calc(100% - 150px);
   margin-left: auto;
   margin-right: auto;
}

#ch-trad-ads .elementor-swiper-button {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 28px;
   height: 46px;
   background-repeat: no-repeat;
   background-position: center;
   background-size: 28px 46px;
}

#ch-trad-ads .elementor-swiper-button svg {
   display: none;
}

#ch-trad-ads .elementor-swiper-button-prev {
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath fill='%23d9d9d9' d='M0,21.7L27,0v43.3L0,21.7Z'/%3E%3C/svg%3E");
}

#ch-trad-ads .elementor-swiper-button-next {
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath fill='%23d9d9d9' d='M27,21.7L0,43.3V0l27,21.7Z'/%3E%3C/svg%3E");
}

#ch-trad-ads .swiper-pagination-bullet {
   opacity: 1;
}

#ch-trad-ads .swiper-pagination-bullet-active {
   width: 22px;
   border-radius: 8px;
}

@media (max-width: 768px) {
   #ch-trad-ads.elementor-arrows-position-outside .swiper {
      width: calc(100% - 50px);
   }

   #ch-trad-ads .elementor-swiper-button {
      width: 14px;
      height: 22px;
      background-size: 14px 22px;
   }
}

/* Social media post carousel
   Same outside triangle arrows and narrowed track as the branding
   and web design carousels. Spacing, lightbox, and autoplay live
   on the Image Carousel widget.
   ========================================================================== */

#ch-social-posts.elementor-arrows-position-outside .swiper {
   width: calc(100% - 150px);
   margin-left: auto;
   margin-right: auto;
}

#ch-social-posts .elementor-swiper-button {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 28px;
   height: 46px;
   background-repeat: no-repeat;
   background-position: center;
   background-size: 28px 46px;
}

#ch-social-posts .elementor-swiper-button svg {
   display: none;
}

#ch-social-posts .elementor-swiper-button-prev {
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath fill='%23d9d9d9' d='M0,21.7L27,0v43.3L0,21.7Z'/%3E%3C/svg%3E");
}

#ch-social-posts .elementor-swiper-button-next {
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath fill='%23d9d9d9' d='M27,21.7L0,43.3V0l27,21.7Z'/%3E%3C/svg%3E");
}

#ch-social-posts .swiper-pagination-bullet {
   opacity: 1;
}

#ch-social-posts .swiper-pagination-bullet-active {
   width: 22px;
   border-radius: 8px;
}

@media (max-width: 768px) {
   #ch-social-posts.elementor-arrows-position-outside .swiper {
      width: calc(100% - 50px);
   }

   #ch-social-posts .elementor-swiper-button {
      width: 14px;
      height: 22px;
      background-size: 14px 22px;
   }
}

/* Video production reel carousel
   Same outside triangle arrows as the other service carousels.
   The live video-drone slider is a Pro nested carousel of YouTube
   videos. This free image carousel shows those posters only.
   ========================================================================== */

#ch-video-reels.elementor-arrows-position-outside .swiper {
   width: calc(100% - 150px);
   margin-left: auto;
   margin-right: auto;
}

#ch-video-reels .elementor-swiper-button {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 28px;
   height: 46px;
   background-repeat: no-repeat;
   background-position: center;
   background-size: 28px 46px;
}

#ch-video-reels .elementor-swiper-button svg {
   display: none;
}

#ch-video-reels .elementor-swiper-button-prev {
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath fill='%23d9d9d9' d='M0,21.7L27,0v43.3L0,21.7Z'/%3E%3C/svg%3E");
}

#ch-video-reels .elementor-swiper-button-next {
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 44'%3E%3Cpath fill='%23d9d9d9' d='M27,21.7L0,43.3V0l27,21.7Z'/%3E%3C/svg%3E");
}

#ch-video-reels .swiper-pagination-bullet {
   opacity: 1;
}

#ch-video-reels .swiper-pagination-bullet-active {
   width: 22px;
   border-radius: 8px;
}

@media (max-width: 768px) {
   #ch-video-reels.elementor-arrows-position-outside .swiper {
      width: calc(100% - 50px);
   }

   #ch-video-reels .elementor-swiper-button {
      width: 14px;
      height: 22px;
      background-size: 14px 22px;
   }
}

/* Contact page
   The mist card overlaps the hero. The band beside the lower card is the
   hero green, and the testimonial band overlaps the card with mist corner
   tabs. Quote photos are Elementor images. The accent squares are CSS.
   ========================================================================== */

#ch-contact-overlap,
#ch-contact-card,
#ch-contact-quotes,
#ch-contact-quotes .e-con,
#ch-contact-quotes .e-con-inner {
   overflow: visible;
}

#ch-contact-overlap {
   position: relative;
   background: transparent;
}

/* The top of this band is transparent so the hero photo shows beside the
   Contact Us heading. Below that, the flank matches the darkened hero
   instead of the cream page. The offset matches the card's negative margin. */
#ch-contact-overlap::before {
   content: "";
   position: absolute;
   z-index: 0;
   left: 0;
   right: 0;
   top: 170px;
   bottom: 0;
   background: #ffffff;
   pointer-events: none;
}

#ch-contact-card {
   position: relative;
   z-index: 1;
}

#ch-contact-quotes .e-con-inner {
   position: relative;
   z-index: 3;
}

#ch-contact-quotes .e-con-inner::before,
#ch-contact-quotes .e-con-inner::after {
   content: "";
   position: absolute;
   top: 0;
   width: 70px;
   height: 50px;
   background: #B8CCD1;
   z-index: 1;
   pointer-events: none;
}

#ch-contact-quotes .e-con-inner::before {
   left: 0;
}

#ch-contact-quotes .e-con-inner::after {
   right: 0;
}

#ch-contact-quotes > .e-con,
#ch-contact-quotes > .e-con-inner {
   position: relative;
   z-index: 2;
}

#ch-contact-info a {
   color: #FFFFFF;
   text-decoration: none;
}

#ch-contact-info a:hover,
#ch-contact-info a:focus {
   color: #FCF7F4;
   text-decoration: underline;
}

#ch-contact-map iframe {
   width: 100%;
   max-width: 100%;
   height: 260px;
   border: 0;
   display: block;
}

#ch-contact-quotes .ch-quote-photo {
   flex: 0 0 72px;
   width: 72px;
   max-width: 72px;
}

#ch-contact-quotes .ch-quote-photo .elementor-widget-container,
#ch-contact-quotes .ch-quote-photo img {
   width: 72px;
   height: 72px;
   max-width: 72px;
}

#ch-contact-quotes .ch-quote-photo img {
   object-fit: cover;
   border-radius: 50%;
   display: block;
}

#ch-quote-1,
#ch-quote-3 {
   position: relative;
}

#ch-quote-1::after,
#ch-quote-3::after {
   content: "";
   position: absolute;
   width: 148px;
   height: 148px;
   background: #89B5BD;
   z-index: 0;
}

#ch-quote-1::after {
   left: -36px;
   bottom: -44px;
}

#ch-quote-3::after {
   right: -36px;
   bottom: -44px;
}

#ch-quote-1 > .e-con,
#ch-quote-1 > .e-con-inner > .e-con,
#ch-quote-3 > .e-con,
#ch-quote-3 > .e-con-inner > .e-con {
   position: relative;
   z-index: 1;
}

@media (max-width: 1366px) {
   #ch-contact-overlap::before {
      top: 170px;
   }

   #ch-contact-quotes::before,
   #ch-contact-quotes::after {
      width: 64px;
      height: 96px;
   }

   #ch-contact-quotes::before {
      left: 32px;
   }

   #ch-contact-quotes::after {
      right: 32px;
   }
}

@media (max-width: 1024px) {
   #ch-contact-overlap::before {
      top: 120px;
   }

   #ch-contact-quotes::before,
   #ch-contact-quotes::after {
      width: 52px;
      height: 80px;
   }

   #ch-contact-quotes::before {
      left: 24px;
   }

   #ch-contact-quotes::after {
      right: 24px;
   }
}

@media (max-width: 767px) {
   #ch-contact-overlap::before {
      top: 72px;
   }

   #ch-contact-quotes::before,
   #ch-contact-quotes::after {
      display: none;
   }

   #ch-contact-quotes .ch-quote-photo {
      flex-basis: 56px;
      width: 56px;
      max-width: 56px;
   }

   #ch-contact-quotes .ch-quote-photo .elementor-widget-container,
   #ch-contact-quotes .ch-quote-photo img {
      width: 56px;
      height: 56px;
      max-width: 56px;
   }

   #ch-quote-1::after,
   #ch-quote-3::after {
      width: 96px;
      height: 96px;
   }

   #ch-quote-1::after {
      left: -14px;
      bottom: -20px;
   }

   #ch-quote-3::after {
      right: -14px;
      bottom: -20px;
   }
}

/* Who We Are team bios
   Each bio is a normal Elementor section so the photo and copy stay editable.
   The editor preview keeps them in the page flow. The public site hides them
   until a portrait is clicked. Do not hide a parent of .ch-bio; the open
   state is position:fixed on .ch-bio itself.
   ========================================================================== */

body:not(.elementor-editor-preview):not(.elementor-editor-active) .ch-bio,
body:not(.elementor-editor-preview):not(.elementor-editor-active) .ch-bio-index {
   display: none !important;
}

/* Holds an open bio without becoming the fixed box. The elementor page
   class stays on this node so Elementor's own card styles still apply. */
#ch-bio-host {
   position: static !important;
   display: block !important;
   width: 0 !important;
   height: 0 !important;
   margin: 0 !important;
   padding: 0 !important;
   overflow: visible !important;
   transform: none !important;
   filter: none !important;
   background: none !important;
   border: 0 !important;
}

body:not(.elementor-editor-preview):not(.elementor-editor-active) .ch-bio.is-open {
   display: flex !important;
   position: fixed !important;
   inset: 0;
   z-index: 100050;
   align-items: center !important;
   justify-content: center !important;
   width: auto !important;
   height: auto !important;
   max-width: none !important;
   margin: 0 !important;
   padding: 24px 16px !important;
   overflow: hidden;
   background: rgba(18, 32, 34, 0.62);
   box-sizing: border-box;
}

body.ch-bio-open {
   overflow: hidden;
}

html:has(body.ch-bio-open) {
   overflow: hidden;
}

body:not(.elementor-editor-preview):not(.elementor-editor-active) .ch-bio.is-open .ch-bio-card {
   width: min(960px, 100%) !important;
   max-width: 960px;
   max-height: calc(100vh - 48px);
   max-height: calc(100dvh - 48px);
   min-height: 0;
   height: auto !important;
   flex: 0 1 auto !important;
   margin: 0 !important;
   padding-top: 56px !important;
   overflow: hidden;
   position: relative !important;
   box-sizing: border-box;
}

body:not(.elementor-editor-preview):not(.elementor-editor-active) .ch-bio.is-open .ch-bio-body {
   min-height: 0;
   max-height: calc(100vh - 140px);
   max-height: calc(100dvh - 140px);
   overflow-x: hidden;
   overflow-y: auto;
   overscroll-behavior: contain;
   -webkit-overflow-scrolling: touch;
}

.ch-bio-body::-webkit-scrollbar {
   width: 8px;
}

.ch-bio-body::-webkit-scrollbar-thumb {
   background: rgba(255, 255, 255, 0.35);
   border-radius: 8px;
}

.ch-bio-photo {
   flex: 0 0 auto;
}

.ch-bio-photo img {
   aspect-ratio: 1 / 1;
   max-width: 100%;
   height: auto;
   object-fit: cover;
   border-radius: 50%;
}

.ch-bio-copy {
   flex: 1 1 auto;
   min-width: 0;
}

.ch-bio-copy .elementor-heading-title {
   margin: 0;
}

.ch-bio-copy .elementor-widget-text-editor p {
   margin: 0;
}

.ch-bio-copy > .elementor-widget-text-editor:last-child p + p {
   margin-top: 0.9em;
}

/* The Elementor kit styles every button (.elementor-kit-65 button), and the
   theme paints button:focus with --primary. Both beat a single class, which
   turned this control into a red rectangle. */
.elementor-kit-65 button.ch-bio-close,
button.ch-bio-close {
   position: absolute;
   top: 20px;
   right: 22px;
   z-index: 3;
   display: flex;
   align-items: center;
   justify-content: center;
   width: 40px;
   height: 40px;
   min-width: 0;
   min-height: 0;
   margin: 0;
   padding: 0;
   border: 0;
   border-radius: 50%;
   background: transparent;
   background-color: transparent;
   box-shadow: none;
   color: #FCF7F4;
   font-family: "Public Sans", sans-serif;
   font-size: 32px;
   font-weight: 300;
   line-height: 1;
   letter-spacing: 0;
   text-transform: none;
   cursor: pointer;
   appearance: none;
   -webkit-appearance: none;
}

.elementor-kit-65 button.ch-bio-close::before,
button.ch-bio-close::before {
   content: "\00d7";
   display: block;
   font-family: "Public Sans", sans-serif;
   font-size: 32px;
   font-weight: 300;
   line-height: 1;
   color: #FCF7F4;
   transform: translateY(-1px);
}

.elementor-kit-65 button.ch-bio-close:hover,
.elementor-kit-65 button.ch-bio-close:focus,
.elementor-kit-65 button.ch-bio-close:focus-visible,
button.ch-bio-close:hover,
button.ch-bio-close:focus,
button.ch-bio-close:focus-visible {
   background: rgba(255, 255, 255, 0.14);
   background-color: rgba(255, 255, 255, 0.14);
   border-color: transparent;
   border-radius: 50%;
   color: #FCF7F4;
   box-shadow: none;
}

.elementor-kit-65 button.ch-bio-close:focus-visible,
button.ch-bio-close:focus-visible {
   outline: 2px solid #FCF7F4;
   outline-offset: 3px;
}

body:not(.elementor-editor-preview):not(.elementor-editor-active) #ch-team .ch-team-card:not(.ch-team-static) {
   cursor: pointer;
}

body:not(.elementor-editor-preview):not(.elementor-editor-active) #ch-team .ch-team-card:not(.ch-team-static):focus-visible {
   outline: 2px solid #325258;
   outline-offset: 4px;
}

#ch-team .ch-team-card .elementor-widget-image {
   overflow: hidden;
}

#ch-team .ch-team-card .elementor-widget-image img {
   display: block;
   height: auto;
   transition: transform 0.35s ease;
}

body:not(.elementor-editor-preview):not(.elementor-editor-active) #ch-team .ch-team-card:not(.ch-team-static):hover .elementor-widget-image img,
body:not(.elementor-editor-preview):not(.elementor-editor-active) #ch-team .ch-team-card:not(.ch-team-static):focus-visible .elementor-widget-image img {
   transform: scale(1.03);
}

@media (max-width: 767px) {
   body:not(.elementor-editor-preview):not(.elementor-editor-active) .ch-bio.is-open {
      align-items: flex-start !important;
      justify-content: flex-start !important;
      padding: 12px !important;
   }

   body:not(.elementor-editor-preview):not(.elementor-editor-active) .ch-bio.is-open .ch-bio-card {
      width: 100% !important;
      max-height: calc(100vh - 24px);
      max-height: calc(100dvh - 24px);
      padding-top: 60px !important;
   }

   body:not(.elementor-editor-preview):not(.elementor-editor-active) .ch-bio.is-open .ch-bio-body {
      max-height: calc(100vh - 108px);
      max-height: calc(100dvh - 108px);
   }

   .ch-bio-copy {
      border-left: 0;
      border-top: 1px solid rgba(255, 255, 255, 0.55);
   }
}

@media (prefers-reduced-motion: reduce) {
   #ch-team .ch-team-card .elementor-widget-image img {
      transition: none;
   }
}

/* Homepage service rotator
   #home_services is the Elementor row under the hero. The script turns its
   headings into an endless track. Five fit across at desktop, with a dot
   in each gap. The type size is set here so the longer names stay on one line.
   ========================================================================== */

#home_services.ch-service-rotator-ready > .e-con-inner {
   display: block;
   width: 100%;
}

#home_services .ch-service-viewport {
   overflow: hidden;
   width: 100%;
   clip-path: inset(0 6px 0 6px);
}

#home_services .ch-service-track {
   display: flex;
   align-items: center;
   will-change: transform;
}

#home_services .ch-service-slide {
   position: relative;
   display: flex;
   flex: 0 0 auto;
   align-items: center;
   justify-content: center;
   box-sizing: border-box;
   min-width: 0;
}

#home_services .ch-service-slide::after {
   content: "";
   position: absolute;
   right: 0;
   top: 50%;
   z-index: 2;
   width: 7px;
   height: 7px;
   border-radius: 50%;
   background: #325258;
   transform: translate(50%, -50%);
   pointer-events: none;
}

#home_services.ch-service-rotator-ready .ch-service-slide > .e-con {
   width: auto !important;
   max-width: calc(100% - 20px);
   --width: auto;
   flex: 0 1 auto !important;
   align-items: center;
   justify-content: center;
   margin: 0 !important;
   padding: 0 !important;
}

#home_services.ch-service-rotator-ready .elementor-widget-heading {
   width: auto;
   margin: 0;
}

#home_services.ch-service-rotator-ready .elementor-heading-title,
#home_services.ch-service-rotator-ready .elementor-heading-title a {
   font-family: "Playfair Display", serif;
   font-size: 28px;
   font-weight: 500;
   line-height: 1.15;
   letter-spacing: 0;
   text-align: center;
   text-decoration: none;
   white-space: nowrap;
}

#home_services.ch-service-rotator-ready .elementor-heading-title a:hover,
#home_services.ch-service-rotator-ready .elementor-heading-title a:focus-visible {
   color: #243C44;
}

@media (max-width: 767px) {
   #home_services.ch-service-rotator-ready .elementor-heading-title,
   #home_services.ch-service-rotator-ready .elementor-heading-title a {
      font-size: 30px;
   }
}

@media (prefers-reduced-motion: reduce) {
   #home_services .ch-service-track {
      transform: none !important;
   }
}
