/*
Theme Name: Current Power Child Theme
Description: Child theme for Current Power website
Version: 1.0.0
Author: Coobo Media
Author URI: https://coobomedia.com
Theme URI: 
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Template: Divi
*/

/* ========== Custom CSS from Generator ========== */

:root {
	--cp-blue: #005BAA;
	--electric-blue: #2979ff;
	--image-blue-border: rgba(220,233,245,0.7);
	--light-gray-1: #e5e5e5;
	--faded-blue: #9BB5CC;
	--pale-blue: #DCE9F5;
	--dark-navy-2: #101d2e;
	--white: #ffffff;

	--font-body: "DM Sans", sans-serif;

--text-h1: clamp(3rem,     4.8826vw + 0.1878rem, 6.25rem);
--text-h2: clamp(2.375rem, 2.4648vw + 0.8498rem, 4rem);
--text-h3: clamp(1.875rem, 1.6901vw + 1.0610rem, 3rem);
--text-h4: clamp(1.625rem, 1.1737vw + 1.0657rem, 2.4rem);
--text-h5: clamp(1.375rem, 0.7136vw + 0.9764rem, 1.85rem);
--text-h6: clamp(1.1875rem, 0.4695vw + 0.9517rem, 1.5rem);
}

/* Fonts */
h1, h2, h3, h4, h5, h6 {font-family: var(--font-heading) !important;}
h1 { font-size: var(--text-h1); line-height: clamp(1.0,  calc(1.08 + 0.08 * (1440px - 100vw) / 1065px), 1.08);  }
h2 { font-size: var(--text-h2); line-height: clamp(1.0,  calc(1.1  + 0.10 * (1440px - 100vw) / 1065px), 1.1);   }
h3 { font-size: var(--text-h3); line-height: clamp(1.05, calc(1.15 + 0.10 * (1440px - 100vw) / 1065px), 1.15);  }
h4 { font-size: var(--text-h4); line-height: clamp(1.1,  calc(1.2  + 0.10 * (1440px - 100vw) / 1065px), 1.2);   }
h5 { font-size: var(--text-h5); line-height: clamp(1.15, calc(1.25 + 0.10 * (1440px - 100vw) / 1065px), 1.25);  }
h6 { font-size: var(--text-h6); line-height: clamp(1.2,  calc(1.35 + 0.15 * (1440px - 100vw) / 1065px), 1.35);  }

body.page {
  font-size: clamp(0.875rem, 0.1878vw + 0.8045rem, 1rem);
  line-height: clamp(1.5, calc(1.6 + 0.1 * (1440px - 100vw) / 1065px), 1.6);
}

/* Divi styles overrides */
.et-l--header ul {
	list-style-type: none;
	padding:0;
}

/* Colors */
.electric-blue-text {
	color: var(--electric-blue);
}
.main-blue-text {
	color:var(--cp-blue);
}

/* Buttons */
div#n2-ss-3 .n2-ss-button-container a,
body #et-boc #et-main-area form .gform-footer input[type="submit"] {
	/* Reset */
	appearance: none;
	margin: 0;
	text-decoration: none;
	cursor: pointer;

	/* Base styles */
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding-inline: var(--button-padding-inline);
	padding-block: var(--button-padding-block);

	/* Typography */
	font-family: var(--button-font-family);
	font-size: var(--button-font-size);
	font-weight: var(--button-font-weight);
	letter-spacing: var(--button-letter-spacing);
	text-transform: var(--button-text-transform);
	line-height: 1 !important;
	white-space: nowrap;

	/* Transitions */
	transition-property: background-color, color, border-color, transform;
	transition-duration: var(--transition-speed-default);
	transition-timing-function: var(--transition-easing-default);

	/* Accessibility */
	-webkit-user-select: none;
	user-select: none;
}

body #et-boc #et-main-area form .gform-footer input[type="submit"] {
	border-radius: 0;
}

div#n2-ss-3 .n2-ss-button-container a,
body #et-boc #et-main-area form .gform-footer input[type="submit"] {
	background-color: var(--button-primary-bg);
	color: var(--button-primary-text);
	border: var(--button-border-width) solid transparent;
}

div#n2-ss-3 .n2-ss-button-container a:hover,
div#n2-ss-3 .n2-ss-button-container a:focus-visible,
body #et-boc #et-main-area form .gform-footer input[type="submit"]:hover,
body #et-boc #et-main-area form .gform-footer input[type="submit"]:focus-visible {
	background-color: var(--button-primary-bg-hover);
}

div#n2-ss-3 .n2-ss-button-container a:active,
body #et-boc #et-main-area form .gform-footer input[type="submit"]:active {
	background-color: var(--button-primary-bg-active);
}

/* Button Icon */
div#n2-ss-3 .n2-ss-button-container a .nav-icon {
  inline-size: var(--button-icon-size);
  block-size: var(--button-icon-size);
}

/* Hide icon by default, show on hover */
div#n2-ss-3 .n2-ss-button-container a .nav-icon {
  opacity: 0;
  inline-size: 0;
  margin-inline-start: 0;
  overflow: hidden;
  transition: opacity var(--transition-speed-default) var(--transition-easing-default),
              inline-size var(--transition-speed-default) var(--transition-easing-default),
              margin-inline-start var(--transition-speed-default) var(--transition-easing-default);
}

div#n2-ss-3 .n2-ss-button-container a:hover .nav-icon,
div#n2-ss-3 .n2-ss-button-container a:focus-visible .nav-icon {
  opacity: 1;
  inline-size: var(--button-icon-size);
  margin-inline-start: var(--button-icon-gap);
}

/* Dividers */
.divider-bottom-blue-white:after {
	content:"";
	background: url(/wp-content/uploads/2026/04/divider-blue-white.svg) no-repeat center top;
	background-size: cover;
	bottom: -1px;
	left:0;
	width: 100%;
	height: 150px;
	position:absolute;
}

/* Preheaders */
.preheader p {
	display: flex !important;
  align-items: center;
}

.preheader .fade-line {
  flex-shrink: 0;
  display: inline-block;
  width: 80px;
  height: 1px;
opacity: 0.4;
  margin-left: 10px;
}

.preheader.cp-blue .fade-line {
	background: linear-gradient(to right, var(--cp-blue) 0%, color-mix(in srgb, var(--cp-blue) 40%, transparent) 100%);
}
.preheader.electric-blue .fade-line {
	background: linear-gradient(to right, var(--electric-blue) 0%, color-mix(in srgb, var(--electric-blue) 40%, transparent) 100%);
}

/* Forms */
.et_pb_contact_form_label,
label.gfield_label.gform-field-label,
label.gform-field-label.gform-field-label--type-sub {
	display:block !important;
	color: var(--faded-blue);
	font-size: var(--font-size-xs);
	text-transform:uppercase;
	padding-bottom: var(--space-1);
	letter-spacing: 5px;
	font-weight:700;
}

form .gfield_required {
    display: none !important;
}

#page-container form .gfield select {
	padding: var(--space-1) var(--space-4) !important;
		    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMiAxMiI+PHBvbHlsaW5lIHBvaW50cz0iMSw0IDYsOSAxMSw0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=");
    background-repeat: no-repeat;
    background-position: right 15px center;
    background-size: 10px;
}

#page-container input.text, #page-container input.title, #page-container input[type=email], #page-container input[type=password], #page-container input[type=tel], #page-container input[type=text], #page-container select, #page-container textarea {
	background-color: rgb(255 255 255 / 0.05) !important;
	border: 1px solid rgb(255 255 255 / 0.08) !important;
	border-radius:0 !important;
	color: var(--color-white);
}

#page-container select option {
    color: #333333 !important;
    background-color: #ffffff !important;
}

#page-container input.text, #page-container input.title, #page-container input[type=email], #page-container input[type=password], #page-container input[type=tel], #page-container input[type=text], #page-container textarea {
	padding: var(--space-4) !important;
}

#page-container input.text, #page-container input.title, #page-container input[type=email], #page-container input[type=password], #page-container input[type=tel], #page-container input[type=text], select {
	height:48px !important;
}
body .gform_wrapper input::placeholder,
body .gform_wrapper textarea::placeholder,
body .gform_wrapper option.gf_placeholder {
 color: rgb(255 255 255 / 0.25) !important;
}

/* Image Decoration */
.blue-frame-border-image {
    padding: 10px;
    background: var(--image-blue-border);
}

.blue-frame-border-image:before,
.blue-frame-border-image:after {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  border: 2px solid var(--cp-blue);
}

/* top-left — only draw top and left sides */
.blue-frame-border-image:before {
  top: 0;
  left: 0;
  border-right: none;
  border-bottom: none;
}

/* bottom-right — only draw bottom and right sides */
.blue-frame-border-image:after {
  bottom: 0;
  right: 0;
  border-left: none;
  border-top: none;
}

.img-object-cover img,
.img-object-cover picture {
	object-fit:cover;
	width: 100% !important;
}

/* Layout */
.container, #et-main-area #main-content .et_pb_row:not([class*=et_flex_column]):not(.no-padding-row) {
	width: 100%;
	max-width: var(--container-max-width);
	padding-right: var(--container-padding-inline) !important;
	padding-left: var(--container-padding-inline) !important;
}

#et-main-area #main-content .et_pb_row .et_pb_row {
	padding-right: 0 !important;
	padding-left: 0 !important;
}

/* Nav */
.main-nav__link {
	color: var(--color-text-inverse) !important;
}

.site-navigation.scrolled .main-nav--dark-mode {
	background:oklch(0.15 0 0 / 0.63) !important;
}

/* Home */
.n2-ss-layers-container .n2-ss-section-main-content {
	padding-right: var(--container-padding-inline) !important;
	padding-left: var(--container-padding-inline) !important;
}

.slider-content-col > div {
	gap: var(--space-2);
}

div#n2-ss-3 .hero-content__description p,
div#n2-ss-4 .hero-content__description p{
	font-size: 1.25rem;
	font-style: normal;
	font-weight: var(--font-weight-normal);
	line-height: normal;
	letter-spacing: -0.0375rem;
	margin: 0;
	margin-bottom: 2.15rem;
}

div#n2-ss-3 .hero-header,
div#n2-ss-4 .hero-header{
	font-size: 6.1875rem !important;
	font-style: normal !important;
	font-weight: var(--font-weight-semibold) !important;
	line-height: 5.6875rem !important;
	letter-spacing: -0.18563rem !important;
	margin: 0 !important;
}
.dipi_advanced_tabs .dipi-at-tabs .dipi-at-tab .dipi-at-tab-title {
	font-family: var(--font-heading);
	line-height: clamp(1.2,  calc(1.35 + 0.15 * (1440px - 100vw) / 1065px), 1.35) !important;
}

.et_pb_module.dipi_advanced_tabs_item {
	margin-bottom: 0 !important;
}

.blue-filter-img {
	border-radius:10px;
}

.blue-filter-img img {
	mix-blend-mode: luminosity;
}

/* CSS wave animation */
  .wave-scene {
    position: absolute; bottom: 0; left: 0;
    width: 100%; height: 650px;
    overflow: hidden; pointer-events: none;
    contain: paint;
	  opacity: 0.3;
  }
  .wave {
    position: absolute; bottom: 0; left: 0;
    width: 200%; height: 100%;
    will-change: transform;
  }
  .wave svg {
    position: absolute; bottom: 0; left: 0;
    width: 100%; height: 100%;
    display: block; overflow: visible;
  }

  /*
    drop-shadow on the <svg> element: one path does double duty as line + glow.
    Two shadow layers = tight inner glow + soft outer halo.
    Applied to <svg> (not <path>) so it works in Safari.
  */
  #s1 { filter: drop-shadow(0 0 4px rgba(139,228,255,0.75)) drop-shadow(0 0 10px rgba(100,200,255,0.35)); }
  #s2 { filter: drop-shadow(0 0 5px rgba(0,160,255,0.65))  drop-shadow(0 0 12px rgba(0,140,255,0.28)); }
  #s3 { filter: drop-shadow(0 0 6px rgba(0,210,255,0.60))  drop-shadow(0 0 14px rgba(0,180,255,0.22)); }
  #s4 { filter: drop-shadow(0 0 3px rgba(0,90,210,0.50))   drop-shadow(0 0  8px rgba(0,80,200,0.20)); }
  #s5 { filter: drop-shadow(0 0 3px rgba(50,200,255,0.40)); }

/*   .wave-vignette {
    position: absolute; inset: 0;
    background:
      linear-gradient(to right, rgba(6,11,24,0.9) 0%, transparent 20%, transparent 80%, rgba(6,11,24,0.9) 100%),
      radial-gradient(ellipse 100% 50% at 50% 100%, transparent 30%, rgba(6,11,24,0.65) 100%);
    pointer-events: none;
  } */

  /* Reduced-motion: cancel animations and remove filter cost entirely */
  @media (prefers-reduced-motion: reduce) {
    .wave { animation: none !important; }
    #s1, #s2, #s3, #s4, #s5 { filter: none; }
  }
/* end CSS wave animation */

/* previous JS canvas animation styles - not used
.wave-scene {
    position: fixed;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 400px;
    overflow: hidden;
    pointer-events: none;
}
.wave-scene canvas {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 100%;
    opacity: 0.5;
}
.glow-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    opacity: 0;
    animation: orb-pulse 6s ease-in-out infinite;
}
.glow-orb-1 {
    width: 320px;
    height: 320px;
    bottom: -80px;
    right: -40px;
    background: radial-gradient(circle, #0066ff 0%, #0033aa 50%, transparent 75%);
    animation-duration: 7s;
    animation-delay: 0s;
}
.glow-orb-2 {
    width: 200px;
    height: 200px;
    bottom: 60px;
    right: 160px;
    background: radial-gradient(circle, #00ccff 0%, #0055dd 50%, transparent 75%);
    animation-duration: 5s;
    animation-delay: -2.5s;
}
.glow-orb-3 {
    width: 140px;
    height: 140px;
    bottom: 140px;
    right: 80px;
    background: radial-gradient(circle, #44eeff 0%, #0088cc 50%, transparent 75%);
    animation-duration: 4s;
    animation-delay: -1s;
} */

.hourglass-flow {
    position: relative; /* Anchor for the canvas */
    width: 100%;
    height: 1320px;      /* Define your section height here */
    overflow: hidden;
}

#c {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    display: block; /* Removes bottom whitespace/gap */
	opacity: 0.5;
}

.hourglass-flow::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        to bottom, 
        var(--dark-navy-2) 0%, 
        transparent 100%
    );
    pointer-events: none; /* Allows clicks to pass through to the canvas if needed */
    z-index: 2;           /* Ensures it sits on top of the canvas */
}

/* .hourglass-flow::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        to bottom, 
        var(--dark-navy-2) 0%, 
        var(--cp-blue) 100%
    );
    pointer-events: none; 
    z-index: 1;           
	mix-blend-mode: color;
}
 */
/* body #et-boc #hourglassFlowBg {
	padding-left: 0 !important;
	padding-right: 0 !important;
} */

body #et-boc #hourglassFlowBg .et-pb-background-video:after {
	content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, var(--dark-navy-2) 0%, var(--cp-blue) 100%);
    pointer-events: none;
    z-index: 1;
    mix-blend-mode: color;
}

body #et-boc #hourglassFlowBg .et-pb-background-video {
	opacity: 0.3;
}

body #et-boc #hourglassFlowBg .et-pb-background-video:before {
	content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, var(--dark-navy-2) 0%, transparent 50%, var(--dark-navy-2) 100%);
    pointer-events: none;
    z-index: 2;
}

/* solutions tabs */
.dipi-at-tabs-next:after, .dipi-at-tabs-prev:after {
    font-family: FontAwesome !important;
    font-weight: 900;
}
.dipi-at-tabs-next:after {
content: "" !important;
}
.dipi-at-tabs-prev:after {
	content: "" !important;
}
.dipi-at-tabs-next,
.dipi-at-tabs-prev {
	
}
	
/* Timeline */
.dipi_htl_item_card-wrap:before {
    background: linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 70%);
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 1;
}
.dipi_htl_item_content {
	z-index:3;
}
.dipi_htl_item_header {
	font-family: var(--font-body) !important;
	font-size: var(--font-size-base) !important;
	font-weight: 700;
}
.dipi_timeline_ribbon_text div {
	font-family: var(--font-heading);
	font-size: var(--font-size-2xl);
	font-weight: 700;
}
.dipi_horizontal_timeline span.et_pb_image_wrap.dipi_htl_item_image_popup {
	position:relative;
}
.dipi_horizontal_timeline span.et_pb_image_wrap.dipi_htl_item_image_popup:before {
    content: "";
    background: linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 70%);
    width: 100%;
    height: 50%;
    z-index: 7;
    display: block;
    position: absolute;
    bottom: 0;
}
.dipi_horizontal_timeline .dipi_htl_container .dipi_horizontal_timeline_item {
	align-self:stretch !important;
} 
.dipi_horizontal_timeline .dipi_htl_container .dipi_horizontal_timeline_item .dipi_htl_item_custom_classes {
    display: flex;
}
.dipi_horizontal_timeline .dipi_htl_container .dipi_horizontal_timeline_item > .dipi_htl_item_custom_classes,
.dipi_htl_item_container {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.dipi_horizontal_timeline .dipi_horizontal_timeline_item .ribbon-ico:after {
	content: "" !important;
	background: url(/wp-content/uploads/2026/04/cp-icon-white.svg);
}
.dipi_horizontal_timeline .dipi_horizontal_timeline_item .ribbon-ico:after {
    content: "" !important;
    background: url(/wp-content/uploads/2026/04/cp-icon-white.svg) no-repeat;
    background-size: cover;
    background-position: center;
    width: 20px;
    height: 20px;
	left: -1px;
    position: relative;
}
.dipi_horizontal_timeline .dipi_horizontal_timeline_item.swiper-slide-active .ribbon-ico.ribbon-ico-circle, .dipi_horizontal_timeline .dipi_horizontal_timeline_item:hover .ribbon-ico.ribbon-ico-circle {
	background-color: var(--cp-blue) !important;
}
.dipi_horizontal_timeline .dipi_horizontal_timeline_item .ribbon-ico.ribbon-ico-circle:not(.active) {
	background-color: var(--light-gray-1);
}
.dipi_horizontal_timeline .dipi_htl_item_image .et_pb_image_wrap img {
    border-radius: 10px 10px 0 0;
}
/* h4.dipi_htl_item_header {
    margin-top: -225px;
    padding-top: 200px;
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 1) 90%);
} */

/* Footer */
.footer-cta-info-col a {
	color: var(--pale-blue);
}
.gform-theme--foundation .gform-grid-row {
    gap: var(--space-8) !important;
	margin-inline: 0 !important;
}
.gform-theme--foundation .gform-grid-col {
	padding-inline: 0 !important;
}
.gform-theme--foundation .gform_fields {
    grid-row-gap: var(--space-8) !important;
    grid-column-gap: var(--space-8) !important;
}

div.gform_confirmation_message {
	color: var(--white);
}

/* Responsive */
@media (max-width: 768px) {
	div#n2-ss-3 .hero-header,
	div#n2-ss-4 .hero-header {
		font-size: 3rem !important;
		line-height: 2.75rem !important;
		letter-spacing: -0.09rem !important;
	}
}