/*
Theme Name:  Dealer Retail Solutions (Requires Divi)
Theme URI:
Version:     1.0
Description: This theme requires Divi parent theme.
Author:      JK
Author URI:
Template:    Divi
*/

/*- Add any CSS custom code for this child theme below this line -*/


#ie-message {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  align-items: center;
  justify-content: center;
  display: none;
  pointer-events: none;
  z-index: -1;
}

#ie-message.on {
  z-index: 9999999;
  display: flex;
  pointer-events: all;
}



.et-db #et-boc .et-l .et-fb-settings-option-color--standard .wp-picker-container .wp-color-result ,
.et-db #et-boc .et-l .et-fb-settings-option-color--standard .wp-picker-container:not(.wp-picker-active) ,
.et-db #et-boc .et-l .et-fb-settings-option-color--gradient .wp-color-result ,
.et-db #et-boc .et-l .et-fb-settings-option-color--previewable .wp-color-result {
  display: block !important;
}

#page-container .fa,
#page-container .far,
body #page-container *[data-icon^="agsdix-far "]:before,
body #page-container .et_pb_custom_button_icon[data-icon^="agsdix-far "]:before,
body *[data-icon^="agsdix-far "]:after,
.et-fb-root-ancestor #et-fb-app .et-fb-font-icon-list *[data-icon^="agsdix-far "]:after,
#et-boc #et-fb-app .et-fb-font-icon-list *[data-icon^="agsdix-far "]:after,
.wp-admin *[data-icon^="agsdix-far "]:before,
.fas,
body #page-container .et_pb_section *[data-icon^="agsdix-fas "]:before,
body #page-container .et_pb_section .et_pb_custom_button_icon[data-icon^="agsdix-fas "]:before,
body #page-container *[data-icon^="agsdix-fas "]:after,
.et-fb-root-ancestor #et-fb-app .et-fb-font-icon-list *[data-icon^="agsdix-fas "]:after,
#et-boc #et-fb-app .et-fb-font-icon-list *[data-icon^="agsdix-fas "]:after,
body #page-container div[class*="et_pb_cta_"].et_pb_promo a.et_pb_promo_button.et_pb_button.et_pb_custom_button_icon[data-icon^="agsdix-fas "]:after,
body #page-container div[class*="et_pb_cta_"].et_pb_promo a.et_pb_promo_button.et_pb_button.et_pb_custom_button_icon[data-icon^="agsdix-fas "]:before,
.wp-admin *[data-icon^="agsdix-fas "]:before {
  font-family: "Font Awesome 5 Free"!important;
}


#et-fb-app-frame { max-height: 100vh; }

.et-fb-root-ancestor body:not(.et-tb) #global-nav {
  background-color: rgba(100,100,100,.1) !important;
  pointer-events: none;
  top: 32px;
}

.et-fb-root-ancestor body:not(.et-tb) #global-nav:before {
  content: "Nav Area";
  position: absolute;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: rgba(0,0,0,.3);
  font-size: 35px;
}

.et-fb-root-ancestor body:not(.et-tb) #global-nav * { display: none; }

html.et-fb-preview--tablet ,
html.et-fb-preview--phone { overflow-y: auto !important; }

body.complete.logged-in > :not(.preloader-plus) { transition: none !important; }

/* Font path: url('../../../wp-content/themes/jk-divi-child_v22/fonts/ */

html {

  --ui-vh: 100vh;
  --ui-vw: 100vw;

  --ui-window-size: calc(var(--ui-vw) + var(--ui-vh));

  --ui-mult: .01;

  --ui-scale: calc(var(--ui-window-size) * var(--ui-mult));

  font-size: var(--ui-scale);


}

body {

  --brand-blue: #9acfe1;
  --brand-teal: #468fa8;
  --brand-teal-dark: #2b5f6e;
  --brand-black: #010101;
  --brand-accent: #ff6300;

  --brand-dark-green: #1d5e35;
  --brand-med-green: #6abf43;
  --brand-cool-gray: #f2f2f2;
  --brand-charcoal: #1b1f23;


  --letter-space: .03em;

  --easeInOutExpo: cubic-bezier(0.4, 0, 0, 1);

  --blue-gradient: radial-gradient(circle at center,#ffffff 30%,hsl(from var(--brand-blue) h s l / 30%) 100%)!important;


}



body {
  letter-spacing: var(--letter-space);
}

h1:last-child ,
h2:last-child ,
h3:last-child ,
h4:last-child ,
h5:last-child  {
  padding-bottom: 0;
}

h1:not(:last-child) ,
h2:not(:last-child) ,
h3:not(:last-child) ,
h4:not(:last-child) ,
h5:not(:last-child)  {
  padding-bottom: 0;
  margin-bottom: .5em;
}

.et_pb_text h1:not(:last-child) ,
.et_pb_text h2:not(:last-child) ,
.et_pb_text h3:not(:last-child) ,
.et_pb_text h4:not(:last-child) ,
.et_pb_text h5:not(:last-child)  {
  padding-bottom: 0;
  margin-bottom: .5em;
}



body:not(.logged-in):not(.home) #page-container {
  /* padding-top: var(--nav-height) !important; */
}

body:not(.logged-in):not(.home) #main-content .et_pb_section:first-child {
  padding-top: calc(var(--nav-height) + 3rem) !important;
  /* padding-top: calc(var(--nav-height) + var(--first-sect-pad-top)) !important; */
}


#page-container {
  overflow: hidden;
  background-color: var(--brand-charcoal);
}

#main-content {
  min-height: calc(100vh - calc(var(--footer-height) * .5));
}

.display-none { display: none !important; }

#footer-bottom { display: none; }

.flex-centered { display: flex; flex-wrap: wrap; align-items: center; align-content: center; justify-content: center; }
.flex-centered-nowrap { display: flex; align-items: center; align-content: center; justify-content: center; }
.flex-centered-left { display: flex; flex-wrap: wrap; align-items: center; align-content: center; justify-content: left; }
.flex-centered-right { display: flex; flex-wrap: wrap; align-items: center; align-content: center; justify-content: flex-end; }

.vertical-space-between {
  align-content: space-between;
}

.space-between {
  justify-content: space-between;
}

.align-top {
  align-items: flex-start;
}

.single-post article.post {
  margin-bottom: 0;
  padding-bottom: 0;
}


body:not(.loaded) #page-container {
  opacity: 0 !important;
  pointer-events: none!important;
}











body:not(.logged-in) header {
  position: fixed;
  top:0;
  left: 0;
  width: 100vw;
  z-index: 999;
}

#nav-section ,
#nav-section * {
  transition: all 1s var(--easeInOutExpo);
}


#nav-section {
  --nav-color: var(--brand-teal);
  --nav-pad: clamp(5px,1rem,30px);
  padding-top: .5rem;
  padding-bottom: 0.5rem;
  /* padding-right: 1.75rem;
  padding-left: 1.25rem; */
  backdrop-filter: blur(0px);
  background-color: rgba(255, 255, 255, 0) !important;
}

.small-nav #nav-section {
  
}

body:not(.small-nav) #nav-section ,
.single-product:not(.small-nav) #nav-section {

}

body:not(.logged-in) #nav-section #top-logo svg path ,
body:not(.logged-in) #nav-section #top-logo svg polygon {
  fill: var(--brand-med-green);
  /* fill-opacity: 0; */
}

body:not(.logged-in).small-nav #nav-section #top-logo svg path ,
body:not(.logged-in).small-nav #nav-section #top-logo svg polygon {
  fill-opacity: 1;
}


.small-nav #nav-section .et_pb_menu__logo-wrap {
  max-width: 200px;
}

#nav-section .et_pb_menu__logo {
  margin: 0;
  overflow: visible;
}

#nav-section .et_pb_menu__logo img {
  margin-bottom: -10px;
}

.small-nav #nav-section .et_pb_menu__logo img {
  margin-bottom: -6px;
}

#nav-section .et_pb_menu__menu {

}

#nav-section .et_pb_menu__menu .et-menu-nav {

}

#nav-section .et_pb_menu__menu .et-menu {
  margin: 0;
}

#nav-section .et_pb_menu__menu .menu-item {
  align-items: flex-end;
  padding: 0;
}

#nav-section .et_pb_menu__menu .menu-item a {
  /* border-bottom: 1px solid; */
  padding: 0 calc(var(--nav-pad) * .5);
  /* color: var(--nav-color); */
  opacity: 1 !important;
}

#nav-section .et_pb_menu__menu .menu-item.current-menu-item a {
  /* background-color: var(--nav-color) !important;
  border-color: var(--nav-color); */
  color: white !important;
  border-radius: 5px;
  padding: calc(var(--nav-pad) * .5) calc(var(--nav-pad) * .4) !important;
}


.small-nav #nav-section .et_pb_menu__menu .menu-item a {
  padding-bottom: 0;
  /* border-bottom: 1px solid rgba(255, 255, 255, 0) !important; */
}

#nav-section .et_pb_menu__menu .menu-item a.current_page_item {
  border-color: inherit !important;
}

#nav-section .et_pb_menu__menu .menu-item:first-child a {
  padding-left: 0;
}

#nav-section .et_pb_menu__menu .menu-item:last-child a {
  padding-right: 0;
}


body:not(.logged-in) #cart-icon ,
body.woocommerce-account #cart-icon {
  position: relative !important;
  right: auto;
}







.mobile_menu_bar {
  width: 30px;
  height: 30px;
  top:20px;
  transform: translateY(0px) !important;
  transition: all .5s var(--easeInOutExpo);
}

.mobile_menu_bar:before ,
.mobile_menu_bar:after { display: none; }

.mobile_menu_bar a {
  width: 100%;
  height: 100%;
  display: block;
}

.hamburger {
  cursor: pointer;
  position: relative;
  display: inline-block;
  margin: 0;
  transition: all 1s ease;
}
.hamburger span {
  display: inline-block;
  width: 100%;
  height: 2px;
  background-color: var(--brand-med-green);
  position: absolute;
  transition: all 1s ease;
  right: 0;
  top: calc(50%);
}


.nav-open .hamburger span:first-child ,
.nav-open .hamburger span:last-child { width: 100%; }

.hamburger span:first-child { transform: translateY(-15px); }
.hamburger span:last-child { transform: translateY(15px); }

/*Effect 35*/
.hamburger span:first-child {
  transform-origin: center;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  animation-name: rotate-base-1;
}
.hamburger span:last-child {
  transform-origin: center;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  animation-name: rotate-base-2;
}

.nav-open .hamburger { transform: rotate(90deg); z-index: 99999; }

.nav-open .hamburger span:nth-child(2) {
  transition-delay: .25s;
  opacity: 0;
}
.nav-open .hamburger span:first-child {
  transform: translateY(0);
  animation-name: rotate-active-1;
}
.nav-open .hamburger span:last-child {
  transform: translateY(0);
  animation-name: rotate-active-2;
}

.nav-open .hamburger span {

}

@keyframes rotate-active-1 {
  0% { transform: translateY(calc(var(--nav-scale) * -.3)); }
  50% { transform: translateY(0); }
  100% { transform: rotate(-45deg); }
}

@keyframes rotate-active-2 {
  0% { transform: translateY(calc(var(--nav-scale) * .3)); }
  50% { transform: translateY(0); }
  100% { transform: rotate(45deg); }
}

@keyframes rotate-base-1 {
  0% { transform: translateY(0) rotate(45deg); }
  50% { transform: rotate(0deg); }
  100% { transform: translateY(-8px); }
}

@keyframes rotate-base-2 {
  0% { transform: translateY(0) rotate(-45deg); }
  50% { transform: rotate(0deg); }
  100% { transform: translateY(8px); }
}




@media (max-width: 980px) {
  
  .et_pb_menu .et_pb_menu__menu {
    display: none !important;
  }

}

#nav-section .mobile_nav

#nav-section .et_mobile_nav_menu {
  --nav-width: clamp(200px,30vw,400px);

}

.nav-open #nav-section .et_mobile_nav_menu {
  
}

#nav-section .et_mobile_nav_menu .et_mobile_menu {
  position: fixed;
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  width: 100vw;
  height: 100vh !important;
  top: 0;
  right: -100vw;
  left: auto;
  background-color: rgba(0, 0, 0, 0) !important;
  border: none;
  border-radius: 0;
  padding: 0 !important;
  transition: right .5s ease;
}

.nav-open #nav-section .et_mobile_nav_menu .et_mobile_menu {
  right: 0;
}

#nav-section .et_mobile_nav_menu .et_mobile_menu .menu-item {
  text-align: center;
}

#nav-section .et_mobile_nav_menu .et_mobile_menu .menu-item a {
  background-color: rgba(0, 0, 0, 0) !important;
  border-color: rgba(255, 255, 255, 0);
}

#nav-section .et_mobile_nav_menu .et_mobile_menu .menu-item .et-pb-icon {
  color: inherit;
}

#nav-section .et_mobile_nav_menu .et_mobile_menu .menu-item a:hover ,
#nav-section .et_mobile_nav_menu .et_mobile_menu .menu-item.current-menu-item a {
  background-color: white !important;
  color: var(--brand-teal) !important;
}


#nav-section .et_mobile_nav_menu {
  
}

#main-content {
  transition: filter .5s ease , -webkit-filter .5s ease;
}

.nav-open #main-content {
  filter: blur(10px) brightness(.5);
  -webkit-filter: blur(10px) brightness(.5);
}



@media (max-width:767px) {

  .mobile_menu_bar {
    width: 30px;
    height: 30px;
    top: 0px;
  }

}






#footer-learn-dfg .dp-dfg-item.type-faq .entry-title:before {
  content:'FAQ: ';
}




@media (min-width:981px) {

  #footer-nav-row .et_pb_column_1_4:nth-child(1) ,
  #footer-nav-row .et_pb_column_1_4:nth-child(2) {
    width: 22%;
  }

  #footer-nav-row .et_pb_column_1_4:nth-child(3) ,
  #footer-nav-row .et_pb_column_1_4:nth-child(4) {
    width: 28%;
  }

}





@media (max-width:980px) and (min-width:768px) {

  #footer-nav-row .et_pb_column_1_4:nth-child(1) ,
  #footer-nav-row .et_pb_column_1_4:nth-child(2) ,
  #footer-nav-row .et_pb_column_1_4:nth-child(3) {
    width: 33.33%;
  }

  #footer-nav-row .et_pb_column_1_4:nth-child(4) {
    width: 100%;
  }

}







/* 


.preloader-plus {
  --prog-size: 5rem;
}

.preloader-plus .prog-bar-wrapper {
  width: var(--prog-size);
  height: var(--prog-size);
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-mask-image: url('/wp-content/uploads/ppl-logo-symbol-minimal-blue.svg');
  mask-image: url('/wp-content/uploads/ppl-logo-symbol-minimal-blue.svg');
}

.preloader-plus .prog-bar-wrapper .prog-bar-bg {
  height: var(--prog-size);
  background-color: rgba(0,0,0,.05);
}

.preloader-plus .prog-bar-wrapper .prog-bar {
  height: var(--progress);
  width: var(--progress);
  opacity: var(--progress);
  border-radius: 1000px;
  transform: scale(1.2);
}

#preloader-counter {
  opacity: var(--progress) !important;
  color: rgba(0, 0, 0, calc(var(--progress) * .1));
  position: fixed;
  font-size: clamp(30px, 22rem, 90vw) !important;
  font-weight: 100 !important;
  z-index: -1;
}












.age-gate {
  width: 100% !important;
  max-width: 100% !important;
}


.age-gate__heading-title--logo {
  width: clamp(100px,7rem,250px);
  margin-bottom: -5% !important
}

.age-gate__subheadline {
  font-size: clamp(18px, 1.2rem, 40px);
  font-weight: 300;
}

.age-gate__heading ,
.age-gate__subheadline {
  margin-bottom: clamp(18px, 1.2rem, 40px);
}

 */








body:not(.logged-in) #home ,
body:not(.logged-in) #home-gradient-row ,
body:not(.logged-in) #why ,
.pin-spacer:has(#why) {
  pointer-events: none;
}

#neuralBG .et-pb-parallax-background {
  background-attachment: fixed !important;
}

 #neuralNetCanvas {
	z-index: 10;
	 mix-blend-mode: overlay;
	 opacity: 1;
} 

#scroll-cta-row {
  z-index: 99;
  position: fixed !important;
}

.small-nav #scroll-cta-row {
  opacity: 0;
  pointer-events: none;
}


.et_pb_row:has(.why-us-stage) {
  perspective: 1200px;
}

.why-us-stage {
  transform-style: preserve-3d;
}

.difference-blurb {
  will-change: transform, opacity, filter;  
}







/* Ensure split characters behave like blocks for 3D transforms */

#home * {
  transform-style: preserve-3d;
}

/* Ensure characters behave like blocks so the mask boundaries calculate correctly */
#home .split-char {
  display: inline-block;
  will-change: clip-path, opacity;
}

/* Force hardware acceleration on the moving parts */
#home .et_pb_row {
  will-change: transform, opacity;
}

/* Base structural CSS for the inline SVG inside Divi */
#home svg {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  overflow: visible !important; /* Prevents center-aligned strokes from being clipped at the boundaries */
  filter: drop-shadow(0px 0px 10px hsl(from var(--gcid-secondary-color) h s l / 50%));
}

#home svg path, 
#home svg rect, 
#home svg circle, 
#home svg polygon, 
#home svg polyline {
  will-change: stroke-dashoffset, opacity, fill;
}

/* Apply the glass effect directly to the Divi Row */
#home .et_pb_row {

}






/*  About Sect */

.colNo ,
.blurbLetters {
  color: hsl(from var(--brand-dark-green) h s l / 100%);
  font-size: 8px;
  font-family: 'Michroma';
  font-weight: bold;
  text-transform: uppercase;
  opacity: .7;
}

.et_pb_column:has(.et_pb_blurb) .colNo {
  color: hsl(from var(--brand-med-green) h s l / 100%);
}

.colNo {
  position: absolute;
  z-index: 99;
  bottom: 0;
  right: 7px;
}

.blurbLetters {
  position: absolute;
  z-index: 99;
  top: 0;
  left: 7px;
  color: hsl(from var(--brand-med-green) h s l / 100%);
}

/* Optimize mask rendering for the main section and modules */
#about, 
#about .et_pb_module {
  will-change: clip-path;
}

/* Force hardware acceleration for moving text and icons */
#about .et_pb_module h1, 
#about .et_pb_module h2, 
#about .et_pb_module h3, 
#about .et_pb_module h4, 
#about .et_pb_module h5, 
#about .et_pb_module h6, 
#about .et_pb_module p, 
#about .et_pb_module li,
#about .et_pb_module .et-pb-icon, 
#about .et_pb_module img, 
#about .et_pb_module svg {
  will-change: transform, opacity;
}

/* Target the generated split words inside the headings for smooth masking */
#about .et_pb_heading div {
  will-change: clip-path;
}






/*  partnerships Sect */

/* Ensure the grid doesn't cut off 3D overflow */
#partnerships {
  perspective: 1200px;
  overflow: visible !important;
}

#partnerships .et_pb_row ,
#partnerships .et_pb_column ,
#partnerships .et_pb_column * {
  transform-style: preserve-3d;
}

#partnerships .et_pb_group {
  will-change: transform, opacity;
  transform-style: preserve-3d;
  /* Optional: Add a subtle glassmorphism or dark background styling here if needed */
}

/* Force hardware acceleration on the inner SVGs and text pills */
#partnerships .et_pb_group svg,
#partnerships .et_pb_group svg path,
#partnerships .et_pb_group .et_pb_module {
  will-change: transform, opacity;
}

/* Ensure the inline SVGs scale responsively within their containers */
#partnerships .et_pb_group svg {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

/* Force hardware acceleration on the split header words and list items */
#partnerships .split-word,
#partnerships .et_pb_group li {
  will-change: transform, opacity;
  display: inline-block; /* Required for GSAP to manipulate transforms cleanly on text */
}

/* For standard list elements, ensure they maintain layout while inline-block is applied */
#partnerships .et_pb_group li {
  /* Fallback perspective applied directly to list items for deeper 3D rendering */
  transform-style: preserve-3d;
  perspective: 1200px; 
}

/* Fix for WebKit browser bug: missing text during 3D transforms */
#partnerships .et_pb_group li {
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
}

#partnerships .et_pb_group li,
#partnerships .et_pb_group li * {
    -webkit-backface-visibility: hidden !important;
    backface-visibility: hidden !important;
}

/* Nudge the inner text or links 1px forward in 3D space so the background doesn't swallow them */
#partnerships .et_pb_group li * {
    transform: translateZ(1px) !important;
}



/* Vimeo BG */

body:not(.logged-in) #video-bg {
  position: fixed;
  width: 100vw;
  height: 100vh;
  left: 0;
  top: 0;
  pointer-events: none;
}


body:not(.logged-in) #video-bg .et_pb_video_box ,
body:not(.logged-in) #video-bg .fluid-width-video-wrapper {
  width: 100%;
  height: 100%;
  padding: 0 !important;
}

body:not(.logged-in) #video-bg .fluid-width-video-wrapper iframe {
  box-sizing: border-box;
  height: 56.25vw;
  left: 50%;
  min-height: 100%;
  min-width: 100%;
  transform: translate(-50%, -50%);
  position: absolute;
  top: 50%;
  width: 177.77777778vh;
  max-width: none;
}












/* -- Global Parallax --*/


.gsap-lax .et_pb_parallax_css {
  background-attachment: scroll !important;
  height: 120%;
}







/* -- Global Animations --*/

.emerge-parent { perspective: 1500px; transform-style: preserve-3d; }

.emerge {
  transition: opacity 1s var(--easeInOutExpo) , transform 1.5s var(--easeInOutExpo) , color .5s ease !important;
}

.emerge[data-emergence=hidden] {
  opacity: 0;
  transform: translateY(30px) translateZ(1px);
  /* filter: blur(3px); */
}

.emerge[data-emergence=visible] {
  opacity: 1;
  transform: translateY(0px) translateZ(1px);
  /* filter: blur(0px); */
}




.mfp-image-holder .mfp-content {
  max-height: 90vh;
}

.mfp-figure:after {
  display: none;
}

.mfp-figure ,
.mfp-img {
  height: 100%;
  padding: 0 !important;
  display: block;
}

.mfp-close {
  position: fixed;
  top: 20px !important;
  right: 40px !important;
  color: white !important;
  opacity: 1 !important;
}



/* -- Form Styles --*/

#contact-form-module {
  
}