.sg-header {
    position: sticky;
    top: 0;
    z-index: 999;
}

/* ==================================================================
   1. GLOBAL / SHARED STYLES (Applies to all screens)
   ================================================================== */

/* TOP TABS */
.sg-header__switcher {
    background: #3d3d3d;
    padding-top: 3px;
}

.sg-header__switcher-inner {
    display: flex;
    align-items: center;
}

.sg-header__tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 180px;
    height: 56px;
    color: #6aaa44;
    text-decoration: none;
    font-weight: 700;
    border-radius: 16px 16px 0 0;
    transition: .3s ease;
}

.sg-header__tab--active {
    background: #ffffff;
    color: #3d3d3d;
}

.sg-header__tab:not(.sg-header__tab--active):hover {
    color: #ffffff;
}

/* MAIN NAV CONTAINER */
.sg-header__main {
    background: #ffffff;
    box-shadow: 0 8px 30px rgba(0,0,0,.08);
}

.sg-header__main-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 90px;
    width: 100%;
}

.sg-header__logo img {
    width: 250px;
    height: auto;
}

/* LINK BASE STYLING */
.sg-header__nav a {
    position: relative;
    color: #3d3d3d;
    text-decoration: none;
    font-weight: 600;
    transition: .3s ease;
}

.sg-header__nav a:hover {
    color: #6aaa44;
}

nav a.active,
.menu-wrapper a.active,
[class*="nav"] a.active {
    color: #2367d4 !important;
    font-weight: 700 !important;
}

a.active i,
a.active svg {
    color: #2367d4 !important;
    fill: #2367d4 !important;
}

/* BUTTON BASE STYLING */
.sg-header__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 50px;
    padding: 0 30px;
    border-radius: 999px;
    background: #6aaa44;
    color: #ffffff;
    text-decoration: none;
    font-weight: 700;
    transition: .3s ease;
}

.sg-header__button:hover {
    transform: translateY(-2px);
    background: #5d9b3a;
}

.mobile-only-text {
    display: none;
}


/* ==================================================================
   2. DESKTOP ONLY LAYOUT (Screens 992px and WIDER)
   ================================================================== */
@media (min-width: 992px) {
    /* Hide the hamburger button entirely on PC */
    .sg-mobile-toggle {
        display: none !important;
    }

    /* Desktop horizontal flex row wrapper settings */
    .sg-header__nav-wrapper {
        display: flex !important;
        align-items: center;
        flex-grow: 1;
        margin-left: 40px;
    }

    /* Pushes desktop menu links perfectly to the center point */
    .sg-header__nav {
        display: flex !important;
        align-items: center;
        gap: 40px;
        margin-left: auto;
        margin-right: auto;
    }

    /* Desktop menu link dot separators */
    .sg-header__nav a:not(:last-child)::after {
        content: "";
        position: absolute;
        right: -20px;
        top: 50%;
        width: 1px;
        height: 16px;
        background: rgba(0,0,0,.15);
        transform: translateY(-50%);
    }

    .sg-header__button {
        margin-left: 0;
    }
}


/* ==================================================================
   3. MOBILE ONLY LAYOUT (Screens 991px and SMALLER)
   ================================================================== */
@media (max-width: 991px) {
    /* Scale top navigation tabs */
    .sg-header__tab {
        min-width: 120px;
        height: 46px;
        font-size: 0.9rem;
    }

    /* Shrink mobile logo sizing */
    .sg-header__logo img {
        width: 180px;
    }

    /* Activate mobile toggle view button */
    .sg-mobile-toggle {
        display: block !important;
        background: none;
        border: none;
        color: #3d3d3d;
        font-size: 2rem;
        cursor: pointer;
        padding: 5px;
        z-index: 1001;
    }

    /* Convert desktop flex bar into a hidden slide-down drawer */
    .sg-header__nav-wrapper {
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        background: #ffffff;
        box-shadow: 0 15px 30px rgba(0,0,0,0.1);
        padding: 30px;
        
        /* Default mobile state is hidden */
        display: none !important; 
        flex-direction: column;
        gap: 25px;
        z-index: 1000;
    }

    /* When JS activates the class, show the entire drawer bundle */
    .sg-header__nav-wrapper.sg-nav-active {
        display: flex !important;
    }

    /* Stack links vertically inside drawer */
    .sg-header__nav {
        display: flex !important;
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
        width: 100%;
    }

    .sg-header__nav a {
        font-size: 1.1rem;
        padding: 8px 0;
        width: 100%;
        border-bottom: 1px solid rgba(0,0,0,0.05);
    }

    /* Hide desktop divider lines on vertical menu */
    .sg-header__nav a:not(:last-child)::after {
        display: none !important;
    }

    .mobile-only-text {
        display: inline;
        margin-left: 8px;
    }

    .sg-header__button {
        display: inline-flex !important;
        width: 100%;
        height: 48px;
    }
}

























/* ==========================
   Service card fix
========================== */

.service-item.style-5 {
  background: linear-gradient(135deg, #89d957 0%, #c9e265 100%) !important;

}

.service-item.style-5 .title,
.service-item.style-5 .title a {
  color: #000 !important;  font-size:50px;     margin: 0 auto;
   text-align: center;

}

.service-item.style-5 .desc {
  color: #000 !important; padding-top: 15px;
}

.service-item.style-5 .no {
  color: #000 !important;
}

.service-item.style-5 {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
}

.service-item.style-5 .service-content-area {
    width: 100% !important;
    height: 100% !important;
    padding: 60px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center;
}

.service-item.style-5 .service-content {
    max-width: 430px;
    margin: 0 auto;
}

.service-item.style-5 .service-img {
    width: 100% !important;
    max-width: none !important;
    height: 605px !important;
}

/* ==========================
   MOBILE LAYOUT for service card fix
========================== */

@media (max-width: 991px) {

    .service-item.style-5 {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }

    .service-item.style-5 .service-content-area {
        order: 1;
        min-height: 400px;
        padding: 50px 30px !important;
    }

    .service-item.style-5 .service-img {
        order: 2;
        width: 100% !important;
        max-width: 100% !important;
        height: 450px !important;
    }

    .service-item.style-5 .service-img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
}

@media (max-width: 576px) {

    .service-item.style-5 .service-content-area {
        min-height: 350px;
        padding: 40px 20px !important;
    }

    .service-item.style-5 .service-img {
        height: 320px !important;
    }

    .service-item.style-5 .service-content {
        max-width: 100%;
    }
}







.body { background-color: #000; }






























/* Custom Governance Buttons */
.btn-governance {
    background-color: #65a844 !important;
    color: #ffffff !important;
    border: 1px solid #65a844 !important;
    transition: all 0.3s ease; /* Makes the color swap smooth */
}

/* Hover State */
.btn-governance:hover, 
.btn-governance:focus {
    background-color: #333333 !important; /* Dark Grey */
    color: #ffffff !important;
    border-color: #333333 !important;
}


















/* ==========================================================================
   1. FRAME WORK & ANIMATED CHASING BLUE BORDER
   ========================================================================== */

/* The outermost frame that holds the spinning gradient track */
#npt-energy-outer-frame {
  position: relative;
  border-radius: 24px;
  padding: 3px; /* This defines the visible thickness of your chasing border */
  background: #e2e8f0; /* Fallback static border */
  overflow: hidden;
  z-index: 1;
}

/* The chasing light engine (conic gradient updated to brand blues) */
#npt-energy-outer-frame::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: conic-gradient(
    from 0deg,
    transparent 15%,
    #2367d4 30%,
    #4f8bf5 50%,
    #2367d4 70%,
    transparent 85%
  );
  animation: nptChasingBorder 4s linear infinite;
  z-index: -2;
}

@keyframes nptChasingBorder {
  100% {
    transform: rotate(360deg);
  }
}

/* Crisp solid white interior container that masks the spinning background into a clean border line */
#npt-energy-section-wrapper {
  background: #ffffff;
  border-radius: 21px; /* Slightly smaller than outer frame to sit beautifully tight inside */
  position: relative;
  z-index: 1;
}

#npt-energy-lead-form {
  position: relative;
  z-index: 2;
}

/* ==========================================================================
   2. INPUT FIELDS & FLOATING LABELS (YOUR ORIGINAL HIGH-CONTRAST LOOK)
   ========================================================================== */

/* Premium High-Contrast Input Elements over White Background */
#npt-energy-lead-form .form-control,
#npt-energy-lead-form .form-select {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  color: #000000 !important; /* Forces typed text to pure black */   
  transition: all 0.25s ease;
}

#npt-energy-lead-form .form-control:focus,
#npt-energy-lead-form .form-select:focus {
  background: #ffffff;
  border-color: #2367d4;
  box-shadow: 0 0 0 4px rgba(35, 103, 212, 0.15);
  transform: translateY(-1px);
}

#npt-energy-lead-form .form-floating > label {
  color: #000;
}

#npt-energy-lead-form .form-floating > .form-control:focus ~ label,
#npt-energy-lead-form .form-floating > .form-control:not(:placeholder-shown) ~ label,
#npt-energy-lead-form .form-floating > .form-select ~ label {
  color: #2367d4;
  font-weight: 700;
}

/* ==========================================================================
   3. LOOKUP BUTTON (YOUR BRAND GREEN LINEAR SHIMMER)
   ========================================================================== */

/* Modern Dark Slate Address Lookup Button */
#npt-energy-lead-form .npt-lookup-btn,
#npt-energy-lead-form .btn.npt-lookup-btn {
  background: #575757 !important;
  background-size: 200% 100% !important;
  animation: nptLookupShimmer 4s infinite linear;
  color: #89d957 !important; /* Sharp contrast dark text */
  border: none !important;
  font-weight: 700;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

#npt-energy-lead-form .npt-lookup-btn:hover,
#npt-energy-lead-form .btn.npt-lookup-btn:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 16px rgba(137, 217, 87, 0.35) !important;
  filter: brightness(1.03) !important;
}

#npt-energy-lead-form .npt-lookup-btn:active {
  transform: translateY(0) !important;
}

/* Independent smooth scrolling background animation */
@keyframes nptLookupShimmer {
  0% { background-position: 0% 0%; }
  100% { background-position: -200% 0%; }
}

/* ==========================================================================
   4. ADDRESS SELECTOR DYNAMIC TRACK (THE CUT-OFF TEXT FIX)
   ========================================================================== */

/* Wrapper: Drives smooth slide expansion with modern CSS grid track rules */
#npt-energy-lead-form .npt-address-wrapper {
  display: grid !important;
  grid-template-rows: 0fr !important;
  transition: grid-template-rows 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

#npt-energy-lead-form .npt-address-wrapper.npt-active {
  grid-template-rows: 1fr !important;
}

#npt-energy-lead-form .npt-address-inner {
  overflow: hidden !important;
  padding-top: 10px !important;    /* Absolute buffer room above input box */
  padding-bottom: 12px !important; /* Clean clearance below container box */
}

/* Custom Select Box: Taller footprint to prevent text collisions */
#npt-energy-lead-form select.form-select#nptAddressSelect {
  height: 4.5rem !important;       /* Bumps height up to comfortably fit multiple lines */
  padding-top: 1.85rem !important; /* Pushes the selection text safely downward */
  padding-bottom: 0.4rem !important;
  line-height: 1.4 !important;
  color: #000000 !important;
}

/* Universal Dropdown Label Fix: Overrides floating label text clipping */
#npt-energy-lead-form .form-floating > select.form-select#nptAddressSelect ~ .npt-dropdown-label {
  position: absolute !important;
  top: 6px !important;              /* Shifts vertical baseline up safely */
  left: 12px !important;
  transform: scale(0.8) translateY(-0.4rem) !important; /* Scales text and centers it */
  transform-origin: top left !important;
  background-color: #ffffff !important; /* Background mask layer over input outline */
  padding: 0 8px !important;            /* Tight background wrap */
  height: auto !important;
  display: inline-block !important;
  color: #1e293b !important;            /* Clean dark text by default */
  font-weight: 700 !important;
  opacity: 1 !important;
  z-index: 5 !important;                /* Positions label text completely on top */
}

/* Active Interactive State: Changes label to signature blue on focus */
#npt-energy-lead-form select.form-select#nptAddressSelect:focus ~ .npt-dropdown-label {
  color: #2367d4 !important;
}

/* ==========================================================================
   5. SERVICE SELECTION UPGRADE TAG BUTTONS
   ========================================================================== */

/* Minimalist Selection Tags for Upgrades */
#npt-energy-lead-form .npt-service-tag {
  cursor: pointer;
  background: #ffffff;
  border: 2px solid #e2e8f0;
  border-radius: 12px;
  padding: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  user-select: none;
}

#npt-energy-lead-form .npt-service-tag:hover {
  border-color: #cbd5e1;
  background: #f8fafc;
  transform: translateY(-2px);
}

#npt-energy-lead-form .npt-service-check:checked + .npt-service-tag {
  border-color: #2367d4;
  background: rgba(35, 103, 212, 0.04);
  box-shadow: 0 6px 15px rgba(35, 103, 212, 0.08);
}

#npt-energy-lead-form .npt-service-check:checked + .npt-service-tag .npt-tag-text {
  color: #2367d4 !important;
  font-weight: 700;
}

#npt-energy-lead-form .npt-service-check:checked + .npt-service-tag .npt-tag-icon {
  transform: scale(1.15) rotate(5deg);
}

/* ==========================================================================
   6. MAIN SUBMIT ACTION BUTTON (BLUE BRAND SHIMMER RAY)
   ========================================================================== */

/* Brand Blue Gradient Submit Button (#2367d4 to #4f8bf5) */
#npt-energy-lead-form .npt-submit-btn,
#npt-energy-lead-form .btn.npt-submit-btn {
  background: #2367d4 !important;
  background-image: linear-gradient(135deg, #2367d4 0%, #4f8bf5 100%) !important;
  color: #ffffff !important; 
  border: none !important;
  border-radius: 12px;
  font-weight: 700;
  padding: 16px;
  position: relative;
  z-index: 1;
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  box-shadow: 0 4px 14px rgba(35, 103, 212, 0.25);
}

/* Shimmering glass lens flare ray glance */
#npt-energy-lead-form .npt-submit-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: -150%;
  width: 50%;
  height: 100%;
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0) 100%);
  transform: skewX(-25deg);
  z-index: -1;
  animation: nptRayGlance 4s infinite ease-in-out;
}

@keyframes nptRayGlance {
  0% { left: -150%; }
  30% { left: 150%; }
  100% { left: 150%; }
}

#npt-energy-lead-form .npt-submit-btn:hover,
#npt-energy-lead-form .btn.npt-submit-btn:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 10px 25px rgba(35, 103, 212, 0.4) !important;
  filter: brightness(1.05) !important;
}

#npt-energy-lead-form .npt-submit-btn:active {
  transform: translateY(0) !important;
}

/* ==========================================================================
   7. CONSENT CHECKBOX & BOTTOM CONSULTATION FOOTNOTE (WITH YELLOW HIGHLIGHT)
   ========================================================================== */

/* Standard Consent Layout Core Matching */
#npt-energy-lead-form .form-check-label {
  color: #475569 !important;
  font-weight: 500;
}
#npt-energy-lead-form .form-check-input {
  background-color: #f1f5f9;
  border-color: #cbd5e1;
}
#npt-energy-lead-form .form-check-input:checked {
  background-color: #2367d4;
  border-color: #2367d4;
}

/* Centered Clean Dark Grey Consultation Text Note Styling */
#npt-energy-lead-form .npt-consultation-note {
  color: #334155 !important;   /* Sleek high-contrast dark slate grey font */
  line-height: 1.6 !important;  /* Comfortable, professional spacing */
  max-width: 620px;             /* Prevents layout from sprawling too wide */
  margin-left: auto;
  margin-right: auto;
}

/* Specific Phrase Accent Layer: Pure Brand Blue with No Background Blend */
#npt-energy-lead-form .npt-text-highlight {
  background: transparent !important;   /* Wipes out any background color blocks completely */
  background-color: transparent !important;
  color: #2367d4 !important;            /* Clean, vivid Brand Blue font color */
  padding: 0 !important;                /* Removes excess inner spacing margins */
  font-weight: 700 !important;          /* Keeps the duration popping instantly */
}



























/* Fixed positioning container */
  .floating-chat-container {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 1060; /* Sits comfortably above standard Bootstrap layouts */
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    font-family: system-ui, -apple-system, sans-serif;
  }

  /* Main trigger button reset */
.chat-trigger-btn {
  position: fixed !important;
  right: 40px !important;
  bottom: 40px !important;
  z-index: 9999 !important;
  width: 150px;
  height: 150px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

  
  .chat-trigger-btn:active {
    transform: scale(0.95);
  }

  /* Shrunk image sizing & Attention Animation */
  .chat-main-img {
    width: 150px;
    height: 150px;
    object-fit: contain;
    animation: attentionPulse 3s infinite ease-in-out;
  }

  /* Gentle attention-grabbing pulse animation */
  @keyframes attentionPulse {
    0%, 100% {
      transform: scale(1);
      filter: drop-shadow(0 4px 6px rgba(0,0,0,0.1));
    }
    50% {
      transform: scale(1.04);
      filter: drop-shadow(0 10px 15px rgba(0,0,0,0.2));
    }
  }

  /* Popup styling & Hidden state */
.chat-popup {
  position: fixed !important;
  right: 30px !important;
  bottom: 115px !important;
  z-index: 9998 !important;
  display: none;
  min-width: 260px;
  border-radius: 18px;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

  /* Visible state triggered by JavaScript */
.chat-popup.show {
  display: block;
  opacity: 1;
  transform: translateY(0);
}

  /* Uniform, perfectly centered icon buttons */
  .contact-icon {
    width: 45px;
    height: 45px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    transition: transform 0.2s ease;
  }
  
  .contact-icon:hover {
    transform: translateY(-3px);
  }
  
  
  button#chatTrigger.chat-trigger-btn {
  position: fixed !important;
  top: auto !important;
  left: auto !important;
  right: 40px !important;
  bottom: 40px !important;
  z-index: 99999 !important;
  width: 150px !important;
  height: 150px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  cursor: pointer !important;
}

#chatTrigger .chat-main-img {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: contain !important;
}

div#chatPopup.chat-popup {
    position: fixed !important;
    right: 30px !important;
    bottom: 190px !important; /* move it further above the button */
    z-index: 100000 !important;
    display: none;
    min-width: 260px;
    border-radius: 18px;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

div#chatPopup.chat-popup.show {
  display: block !important;
  opacity: 1;
  transform: translateY(0);
}
  
  
  
  
  
  
  
  
  
  
  
  
@media (min-width: 992px) {
      /* 1. Forces the row to treat columns as an independent, level flex track */
      .slidebar-stickiy-container .row {
        display: flex !important;
        align-items: flex-start !important;
      }
      
      /* 2. Forces the sidebar grid cell to pull tight to the structural ceiling */
      .slidebar-stickiy-container .col-lg-4 {
        margin-top: 0 !important;
        padding-top: 0 !important;
      }

      /* 3. Locks the sticky engine parameters cleanly */
      .slidebar-stickiy {
        position: sticky !important;
        top: 140px !important; 
        z-index: 10 !important;
        display: block !important;
        margin-top: 0 !important;
      }
    }
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	@keyframes brandGradientFlow {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
  }

  /* Full viewport breakout layout rules shared by both sections */
  .banner-breakout-row {
    width: 100vw !important;
    max-width: 100% !important;
    position: relative !important;
    left: 50% !important;
    right: 50% !important;
    margin-left: -50vw !important;
    margin-right: -50vw !important;
    overflow: hidden !important;
  }

  /* Clean frame borders separating the interactive sections */
  .banner-border-frame {
    border-top: 10px solid #eff6ec !important;
    border-bottom: 10px solid #eff6ec !important;
  }

  .animated-brand-banner {
    height: 420px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: linear-gradient(-45deg, #89d957, #c9e265, #7fc84f, #d5ec76) !important;
    background-size: 400% 400% !important;
    animation: brandGradientFlow 12s ease infinite !important;
  }
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  .sg-solar-gsap-stack {
  background: #eff6ec;
  padding: 90px 0;
  overflow: hidden;
}

.sg-solar-gsap-stack__intro {
  max-width: 1050px;
  margin: 0 auto 70px;
}

.sg-solar-gsap-stack__eyebrow {
  display: inline-flex;
  padding: 10px 18px;
  border-radius: 999px;
  background: linear-gradient(135deg, #89d957, #c9e265);
  color: #24351e;
  font-size: 14px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 18px;
}

.sg-solar-gsap-stack__intro h2 {
  font-size: clamp(42px, 7vw, 92px);
  line-height: 0.9;
  letter-spacing: -0.075em;
  font-weight: 950;
  color: #1d291a;
  margin-bottom: 22px;
}

.sg-solar-gsap-stack__intro p {
  max-width: 820px;
  margin: 0 auto;
  font-size: clamp(18px, 2vw, 24px);
  color: #40513b;
  font-weight: 600;
  line-height: 1.4;
}

.sg-solar-gsap-stack__trust-row {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.sg-solar-gsap-stack__trust-row span {
  display: inline-flex;
  padding: 11px 16px;
  border-radius: 999px;
  background: #fff;
  color: #2367d4;
  font-size: 14px;
  font-weight: 900;
  box-shadow: 0 12px 28px rgba(38,60,30,0.08);
}

.sg-solar-gsap-stack__wrapper {
  position: relative;
}

.sg-solar-gsap-stack__panel {
  position: relative;
  min-height: 78vh;
  width: 100%;
  border-radius: 42px;
  padding: clamp(28px, 5vw, 70px);
  background: #fff;
  box-shadow: 0 26px 80px rgba(29, 41, 26, 0.16);
  display: flex;
  align-items: center;
  margin-bottom: 40px;
  transform-origin: center top;
}

.sg-solar-gsap-stack__panel--blue {
  background: #2367d4;
}

.sg-solar-gsap-stack__panel--dark {
  background: #1d291a;
}

.sg-solar-gsap-stack__panel b {
  display: inline-flex;
  width: 62px;
  height: 62px;
  border-radius: 20px;
  background: #2367d4;
  color: #fff;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 950;
  margin-bottom: 24px;
}

.sg-solar-gsap-stack__panel--blue b,
.sg-solar-gsap-stack__panel--dark b {
  background: linear-gradient(135deg, #89d957, #c9e265);
  color: #1d291a;
}

.sg-solar-gsap-stack__panel h3 {
  font-size: clamp(40px, 6vw, 78px);
  line-height: 0.9;
  letter-spacing: -0.07em;
  font-weight: 950;
  color: #1d291a;
  margin-bottom: 22px;
}

.sg-solar-gsap-stack__panel p {
  max-width: 650px;
  font-size: clamp(18px, 2vw, 23px);
  line-height: 1.42;
  color: #40513b;
  font-weight: 600;
  margin-bottom: 22px;
}

.sg-solar-gsap-stack__panel strong {
  display: inline-flex;
  padding: 14px 20px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(137,217,87,0.35), rgba(201,226,101,0.55));
  color: #1d291a;
  font-weight: 900;
  line-height: 1.25;
}

.sg-solar-gsap-stack__panel--blue h3,
.sg-solar-gsap-stack__panel--blue p,
.sg-solar-gsap-stack__panel--dark h3,
.sg-solar-gsap-stack__panel--dark p {
  color: #fff;
}

.sg-solar-gsap-stack__panel--blue strong,
.sg-solar-gsap-stack__panel--dark strong {
  background: rgba(255,255,255,0.15);
  color: #fff;
}

.sg-solar-gsap-stack__media,
.sg-solar-gsap-stack__video,
.sg-solar-gsap-stack__finance,
.sg-solar-gsap-stack__stat-box {
  min-height: 430px;
  border-radius: 34px;
  background:
    linear-gradient(135deg, rgba(137,217,87,0.3), rgba(201,226,101,0.42)),
    repeating-linear-gradient(
      -45deg,
      rgba(255,255,255,0.55) 0,
      rgba(255,255,255,0.55) 14px,
      rgba(35,103,212,0.08) 14px,
      rgba(35,103,212,0.08) 28px
    );
  border: 2px dashed rgba(35,103,212,0.28);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #2367d4;
  font-weight: 950;
  text-align: center;
  box-shadow: 0 18px 50px rgba(38,60,30,0.08);
}

.sg-solar-gsap-stack__stat-box,
.sg-solar-gsap-stack__finance {
  flex-direction: column;
  background: #fff;
}

.sg-solar-gsap-stack__stat-box em,
.sg-solar-gsap-stack__finance em {
  font-style: normal;
  font-size: clamp(72px, 12vw, 160px);
  line-height: 0.8;
  letter-spacing: -0.08em;
  color: #2367d4;
  font-weight: 950;
  margin-bottom: 22px;
}

.sg-solar-gsap-stack__stat-box span,
.sg-solar-gsap-stack__finance span {
  color: #1d291a;
  font-size: clamp(22px, 3vw, 34px);
  line-height: 1;
  font-weight: 950;
}

.sg-solar-gsap-stack__finance small {
  margin-top: 12px;
  color: #40513b;
  font-size: 15px;
  font-weight: 800;
}

.sg-solar-gsap-stack__usage-grid,
.sg-solar-gsap-stack__safety-grid,
.sg-solar-gsap-stack__process {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

.sg-solar-gsap-stack__usage-grid div,
.sg-solar-gsap-stack__safety-grid div,
.sg-solar-gsap-stack__process div {
  min-height: 145px;
  border-radius: 24px;
  padding: 22px;
  background: linear-gradient(135deg, rgba(137,217,87,0.35), rgba(201,226,101,0.55));
  color: #1d291a;
  font-weight: 950;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  box-shadow: 0 14px 35px rgba(38,60,30,0.08);
}

.sg-solar-gsap-stack__usage-grid span {
  display: block;
  font-size: clamp(34px, 5vw, 58px);
  line-height: 0.9;
  letter-spacing: -0.06em;
}

.sg-solar-gsap-stack__usage-grid small {
  display: block;
  font-size: 15px;
  margin-top: 10px;
  color: #40513b;
  font-weight: 850;
}

.sg-solar-gsap-stack__safety-grid div,
.sg-solar-gsap-stack__process div {
  font-size: clamp(18px, 2vw, 24px);
}

.sg-solar-gsap-stack__process {
  grid-template-columns: repeat(3, 1fr);
}

.sg-solar-gsap-stack__video {
  flex-direction: column;
  background: linear-gradient(135deg, #89d957, #c9e265);
}

.sg-solar-gsap-stack__video i {
  width: 92px;
  height: 92px;
  border-radius: 50%;
  background: #2367d4;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-style: normal;
  font-size: 34px;
  margin-bottom: 18px;
  animation: sgSolarStackVideoPulse 2s ease-in-out infinite;
}

.sg-solar-gsap-stack__video span {
  color: #2367d4;
  font-size: 30px;
  line-height: 1;
  font-weight: 950;
  margin-bottom: 8px;
}

.sg-solar-gsap-stack__video small {
  color: #1d291a;
  font-size: 16px;
  font-weight: 850;
}

.sg-solar-gsap-stack__panel a {
  display: inline-flex;
  padding: 16px 24px;
  border-radius: 999px;
  background: linear-gradient(135deg, #89d957, #c9e265);
  color: #1d291a;
  font-weight: 950;
  text-decoration: none;
  box-shadow: 0 18px 40px rgba(137,217,87,0.2);
}

.sg-solar-gsap-stack__panel a:hover {
  color: #1d291a;
  transform: translateY(-4px);
}

@keyframes sgSolarStackVideoPulse {
  0%, 100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.08);
  }
}

@media (max-width: 991px) {
  .sg-solar-gsap-stack__panel {
    min-height: auto;
  }

  .sg-solar-gsap-stack__media,
  .sg-solar-gsap-stack__video,
  .sg-solar-gsap-stack__finance,
  .sg-solar-gsap-stack__stat-box {
    min-height: 300px;
    margin-top: 24px;
  }

  .sg-solar-gsap-stack__process {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 575px) {
  .sg-solar-gsap-stack {
    padding: 65px 0;
  }

  .sg-solar-gsap-stack__panel {
    border-radius: 28px;
    margin-bottom: 26px;
  }

  .sg-solar-gsap-stack__media,
  .sg-solar-gsap-stack__video,
  .sg-solar-gsap-stack__finance,
  .sg-solar-gsap-stack__stat-box {
    min-height: 260px;
  }

  .sg-solar-gsap-stack__usage-grid,
  .sg-solar-gsap-stack__safety-grid,
  .sg-solar-gsap-stack__process {
    grid-template-columns: 1fr;
  }

  .sg-solar-gsap-stack__panel strong {
    border-radius: 18px;
  }

  .sg-solar-gsap-stack__panel a {
    width: 100%;
    justify-content: center;
  }
}
































































/* Container to reset standard list styling */
.custom-green-list {
    list-style: none;
    padding-left: 0;
    margin: 20px 0;
}

/* Individual list item setup */
.custom-green-list li {
    position: relative;
    padding-left: 30px;
    margin-bottom: 15px;
    font-size: 16px;
    line-height: 1.5;
    color: #000; /* Matches your text-dark vibe */
    transition: color 0.3s ease;
}

/* Creating the custom arrow using a pseudo-element */
.custom-green-list li::before {
    content: "";
    position: absolute;
    left: 5px;
    top: 8px; /* Perfectly centers the arrow vertically with the text */
    width: 8px;
    height: 8px;
    
    /* Draws a clean custom chevron */
    border-top: 2.5px solid #65a844;
    border-right: 2.5px solid #65a844;
    transform: rotate(45deg);
    
    /* Smooth movement animation setup */
    transition: transform 0.3s ease, left 0.3s ease;
}

/* Hover Effects */
.custom-green-list li:hover {
}

.custom-green-list li:hover::before {
    left: 12px; /* Micro-interaction: arrow slides forward smoothly */
    transform: rotate(45deg) scale(1.1); /* Slightly pops out */
}


.service-item.style-2:hover .custom-green-list li {
    font-weight: 600;
}
.service-item.style-2:hover .custom-green-list li:hover::before {
    font-weight: 600; color:#fff;
}







/* 1. Clear, Crisp Bouncing Numbers */
.working-process-area .process-step span {
  display: inline-block !important;
  position: relative !important;
  z-index: 9999 !important;
  visibility: visible !important;
  opacity: 1 !important;
  
  font-size: 6rem !important; 
  font-weight: 800 !important;
  line-height: 1 !important;
  color: #053e1e !important; /* Crisp dark green */
  
  /* Resetting the webkit background clip bug */
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: initial !important;
  text-fill-color: initial !important;
  background: none !important; 

  /* Animation Engine */
  animation: tripleBounceLoop 8s infinite ease-in-out !important;
  transform-origin: bottom center !important;
}

/* 2. Container Safety Check (No clipping) */
.working-process-area .process-item,
.working-process-area .process-step {
  overflow: visible !important;
}

/* 3. Description Styling Fix */
.working-process-area .process-content .desc {
  color: #000 !important;
}

/* 4. Choreographed Staggered Delays */
.working-process-area .process-item:nth-child(1) .process-step span { animation-delay: 0s !important; }
.working-process-area .process-item:nth-child(2) .process-step span { animation-delay: 2s !important; }
.working-process-area .process-item:nth-child(3) .process-step span { animation-delay: 4s !important; }

/* 5. The 3-Bounce Animation Timeline */
@keyframes tripleBounceLoop {
  /* BOUNCE 1 */
  0%, 100% { transform: translateY(0) scaleY(1); }
  3% { transform: translateY(-20px) scaleY(1.05); }
  6% { transform: translateY(0) scaleY(0.95); } 
  
  /* BOUNCE 2 */
  9% { transform: translateY(-15px) scaleY(1.03); }
  12% { transform: translateY(0) scaleY(0.97); }
  
  /* BOUNCE 3 */
  15% { transform: translateY(-8px) scaleY(1.01); }
  18%, 25% { transform: translateY(0) scaleY(1); } 
}















































.modal.fade.show {
    opacity: 1 !important;
    display: block !important;
}
.modal.fade.show .modal-content {
    opacity: 1 !important;
    visibility: visible !important;
}

.modal {
    z-index: 1055 !important; /* Forces it above the default backdrop layer */
}
.modal-dialog {
    z-index: 1056 !important;
}




/* Container Box Customization (Glassmorphism Effect) */
.custom-feedback-modal {
  background: rgba(20, 28, 36, 0.85) !important; /* Sleek dark background matching your template */
  backdrop-filter: blur(15px) ; /* Blurs whatever sits behind the popup */
  -webkit-backdrop-filter: blur(15px);
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 16px !important;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
}

/* Translucent Fixed Top Header with Fade Gradient */
.feedback-header {
  background: linear-gradient(to bottom, rgba(20, 28, 36, 0.95), rgba(20, 28, 36, 0.75)) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
  padding: 20px 25px !important;
  z-index: 2;
}
.feedback-header .modal-title {
  color: #ffffff;
  font-weight: 600;
  font-size: 1.25rem;
}

/* Translucent Fixed Bottom Footer with Fade Gradient */
.feedback-footer {
  background: linear-gradient(to top, rgba(20, 28, 36, 0.95), rgba(20, 28, 36, 0.75)) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.05) !important;
  padding: 15px 25px !important;
  justify-content: center !important;
  z-index: 2;
}
.feedback-footer .trust-badge {
  color: var(--tj-color-theme-primary, #8ec34c); /* Pulls your template green */
  font-size: 0.9rem;
  font-weight: 500;
}

/* Scrollable Container Space */
.feedback-scroll-area {
  padding: 25px !important;
  max-height: 400px; /* Limits size to force internal scrolling context */
}

/* Elegant Review Cards Style */
.review-card {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 10px;
  padding: 20px;
  margin-bottom: 20px;
  transition: transform 0.2s ease;
}
.review-card:last-child {
  margin-bottom: 0;
}
.review-card:hover {
  transform: translateY(-2px);
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}
.review-stars {
  color: #ffb800; /* Crisp gold color for the rating stars */
  margin-bottom: 8px;
  font-size: 1rem;
}
.review-text {
  color: #e0e0e0 !important;
  font-size: 0.95rem;
  line-height: 1.6;
  margin-bottom: 10px !important;
  font-style: italic;
}
.review-author {
  color: #a0a0a0;
  font-size: 0.85rem;
  font-weight: 500;
  text-align: right;
}

/* Custom Minimalist Scrollbar Design */
.feedback-scroll-area::-webkit-scrollbar {
  width: 6px;
}
.feedback-scroll-area::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.1);
}
.feedback-scroll-area::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.2);
  border-radius: 10px;
}
.feedback-scroll-area::-webkit-scrollbar-thumb:hover {
  background: var(--tj-color-theme-primary, #8ec34c);
}