:root {
  /* Color Palette - Soft & Modern */
  --sage-green: #007946;
  --ocean-blue: #4A90A4;
  --mint-fresh: #B8E6B8;
  --warm-coral: #FF8A80;
  --soft-yellow: #F6F3B5;
  --cream-white: #FDFBF7;
  --light-gray: #F5F7FA;
  --medium-gray: #E2E8F0;
  --charcoal: #2C3E50;
  --dark-gray: #4A5568;

  /* Gradients */
  --gradient-primary: linear-gradient(135deg, var(--sage-green), var(--ocean-blue));
  --gradient-soft: linear-gradient(135deg, var(--mint-fresh), var(--soft-yellow));
  --gradient-warm: linear-gradient(135deg, var(--warm-coral), var(--sage-green));

  /* Typography */
  --font-primary: 'Poppins', sans-serif;
  --font-secondary: 'Inter', sans-serif;

  /* Spacing */
  --space-xs: 0.5rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2rem;
  --space-xl: 3rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;
  --space-mobile-top: 0rem;

  /* Transitions */
  --transition-fast: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-smooth: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: 0.6s cubic-bezier(0.4, 0, 0.2, 1);

  /* Shadows */
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);

  /* Border Radius */
  --radius-sm: 0.375rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;
  --radius-xl: 1rem;
  --radius-2xl: 1.5rem;
}

html,
body {
  font-family: var(--font-primary);
  background: var(--cream-white);
  margin: 0;
  padding: 0;
  color: var(--charcoal);
}

/*======================================================
HEADER STYLES
====================================================== */

:root {
      --charcoal: #1f2937;
      --sage-green: #059669;
      --mint-fresh: #d1fae5;
      --light-gray: #f3f4f6;
      --shadow-lg: 0 8px 32px rgba(0,0,0,0.08);
      --space-xs: 7px;
      --space-sm: 14px;
      --space-md: 20px;
      --space-lg: 30px;
      --radius-md: 8px;
      --radius-lg: 18px;
      --transition-smooth: all 0.23s cubic-bezier(.38,1.16,.37,.97);
    }
    .navbar {
      width: 100%;
      background: #fdfcf8;
      box-shadow: 0 2px 8px rgba(34,42,55,0.02);
      padding: 0;
      position: fixed;
      top: 0;
      z-index: 999;
    }
    .company-name{
      color:var(--sage-green);
      margin:auto;
    }
    .nav-container {
      margin: 0px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 32px;
      height: 70px;
      position: relative;
    }
    .nav-logo img {
      height: 48px;
      width: auto;
      border-radius: 50%;
    }
    .nav-logo {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      color: var(--sage-green);
      font-weight: bold;
    }

    .nav-menu {
      display: flex;
      list-style: none;
      gap: var(--space-lg);
    }
    .nav-item {
      position: relative;
    }
    .nav-item a {
      font-weight: 500;
      color: var(--charcoal);
      padding: var(--space-xs) var(--space-sm);
      border-radius: var(--radius-md);
      transition: var(--transition-smooth);
      position: relative;
      text-decoration: none;
    }
    .nav-item a:hover {
      background: var(--mint-fresh);
      color: var(--sage-green);
    }
    .nav-item a.active {
      background: var(--sage-green);
      color: white;
    }
    /* Dropdown Menu */
    .dropdown-menu {
      position: absolute;
      top: 100%;
      left: 0;
      background: white;
      min-width: 200px;
      box-shadow: var(--shadow-lg);
      border-radius: var(--radius-lg);
      opacity: 0;
      visibility: hidden;
      transform: translateY(-10px);
      transition: var(--transition-smooth);
      list-style: none;
      padding: var(--space-sm) 0;
      z-index: 1001;
    }
    .nav-item:hover .dropdown-menu {
      opacity: 1;
      visibility: visible;
      transform: translateY(0);
    }
    .dropdown-menu li a {
      display: block;
      padding: var(--space-xs) var(--space-md);
      color: var(--charcoal);
      border-radius: 0;
      background: transparent;
      text-decoration: none;
    }
    .dropdown-menu li a:hover {
      background: var(--light-gray);
      color: var(--sage-green);
    }
.dropdown-menu-last {
      position: absolute;
      top: 100%;
      right: 0;
      background: white;
      min-width: 200px;
      box-shadow: var(--shadow-lg);
      border-radius: var(--radius-lg);
      opacity: 0;
      visibility: hidden;
      transform: translateY(-10px);
      transition: var(--transition-smooth);
      list-style: none;
      padding: var(--space-sm) 0;
      z-index: 1001;
    }
    .nav-item:hover .dropdown-menu-last {
      opacity: 1;
      visibility: visible;
      transform: translateY(0);
    }
    .dropdown-menu-last li a {
      display: block;
      padding: var(--space-xs) var(--space-md);
      color: var(--charcoal);
      border-radius: 0;
      background: transparent;
      text-decoration: none;
    }
    .dropdown-menu-last li a:hover {
      background: var(--light-gray);
      color: var(--sage-green);
    }

    /* Mobile Menu Toggle */
    .nav-toggle {
      display: none;
      flex-direction: column;
      cursor: pointer;
      gap: 4px;
    }
    .nav-toggle span {
      width: 25px;
      height: 3px;
      background: var(--charcoal);
      transition: var(--transition-smooth);
      transform-origin: center;
    }
    /* 4. HAMBURGER ICON (MOBILE) */
    .hamburger {
      display: none;
      flex-direction: column;
      gap: 5px;
      cursor: pointer;
      z-index: 1100; /* Above overlay */
    }
    .hamburger span {
      display: block;
      width: 25px;
      height: 3px;
      background-color: #1f2937;
      border-radius: 2px;
      transition: transform 0.3s ease, opacity 0.3s ease;
    }
    /* 5. MOBILE MENU OVERLAY */
    .mobile-menu-overlay {
      position: fixed;
      top: 0;
      left: 0;
      width: 0;
      height: 100vh;
      background-color: rgba(255, 255, 255, 0.98);
      overflow: hidden;
      transition: width 0.3s ease;
      z-index: 1000;
    }
    .mobile-menu-overlay.open {
      width: 100vw;
      overflow-y: auto;
      pointer-events: auto;
    }
    .mobile-menu-content {
      display: flex;
      flex-direction: column;
      padding: 80px 20px 20px 20px;
      gap: 24px;
    }
    .mobile-menu-content a {
      font-size: 1.125rem;
      font-weight: 500;
      color: #1f2937;
      padding: 10px 0;
      border-bottom: 1px solid #e5e7eb;
      transition: color 0.2s ease;
      text-decoration: none;
    }
    .mobile-menu-content a:hover {
      color: #059669;
    }
    /* Mobile “Solutions” Submenu */
    .mobile-submenu {
      display: none;
      flex-direction: column;
      margin-top: 4px;
      margin-left: 12px;
      gap: 12px;
    }
    .mobile-submenu a {
      font-size: 1rem;
      font-weight: 400;
      color: #374151;
      padding: 8px 0;
      border-bottom: none;
    }
    .mobile-submenu a:hover {
      color: #059669;
    }
    /* 6. MEDIA QUERIES */
    @media (max-width: 1350px) {
      .nav-menu {
        display: none;
      }
      .hamburger {
        display: flex;
      }
      .nav-container {
        padding: 0 12px;
      }
      .nav-logo img {
        height: 38px;
      }
      .mobile-menu-overlay.open {
        width: 100vw;
      }
    }
    @media (min-width: 1351px) {
      .mobile-menu-overlay {
        display: none !important;
      }
    }
/*======================================================
COMMON PAGE STYLES
====================================================== */
.all-page-hero-section {
  position: relative;
  min-height: 350px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gradient-primary);
  overflow: hidden;
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-xl);
  margin: var(--space-xl) var(--space-sm) 0 var(--space-sm);
  animation: fadeInDown 1s;
}

.all-page-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.01));
  z-index: 1;
  border-radius: var(--radius-2xl);
}

.all-page-hero-content {
  position: relative;
  z-index: 2;
  text-align: center;
  color: var(--cream-white);
}

.all-page-hero-title {
  font-size: 2.7rem;
  font-weight: 700;
  margin: 0 0 var(--space-xs) 0;
  letter-spacing: -1.2px;
  color: var(--soft-yellow);
  text-shadow: 1px 3px 12px rgba(44, 62, 80, 0.15);
}

.all-page-hero-subtitle {
  font-size: 1.2rem;
  max-width: 540px;
  margin: 0 auto;
  color: var(--cream-white);
  font-weight: 400;
}



/* Section */
.all-section-title {
  font-size: 2.1rem;
  font-weight: 700;
  color: var(--sage-green);
  margin-bottom: var(--space-xs);
  letter-spacing: -0.5px;
  text-shadow: 0 3px 18px rgba(44, 62, 80, 0.08);
  margin-top: 2em;
}

.all-section-subtitle {
  color: var(--ocean-blue);
  font-size: 1.1rem;
}
.section-top {
  padding-top: 7rem;
}

@media (max-width: 520px) {
  .contact-page-hero-section {
    min-height: 110px;
  }

  .all-page-hero-title {
    font-size: 2rem;
  }
  .section-top {
  padding-top: 7rem;
}
}

@media (max-width: 730px) {
  .all-page-hero-section {
    min-height: 200px;
    margin-top: var(--space-mobile-top);
    padding: 20px;
    margin-left: 0;
    margin-right: 0;
    border-radius: var(--radius-lg);
  }

  .all-section-title {
    font-size: 1.3rem;
  }
  .section-top {
  padding-top: 7rem;
}
}

.gradient-btn-top,
.gradient-btn-top-light {
  display: inline-block;
  background: var(--gradient-primary, linear-gradient(135deg, #007946, #4A90A4));
  color: #fff;
  padding: 0.36em 1.35em;
  border-radius: 2em;
  font-weight: 600;
  font-size: 1rem;
  margin-bottom: 1.15rem;
  box-shadow: 0 2px 8px 0 rgba(44, 62, 80, 0.07);
  letter-spacing: 0.03em;
}

.gradient-btn-top-light {
  background: linear-gradient(135deg, #B8E6B8, #F6F3B5 90%);
  color: #007946;
}


/*================================================================================================================================================
HOME PAGE  STYLES
================================================================================================================================================== */
/* home banner section */
.ggt-hero {
  position: relative;
  min-height: 65vh;
  display: flex;
  align-items: stretch;
  justify-content: center;
  overflow: hidden;
  padding-top: 5.5rem;
  font-family: var(--font-primary);
  background: #f5f7fa;
}

.ggt-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.ggt-hero-bg-img {
  position: absolute;
  inset: 0;
  background: url('https://images.unsplash.com/photo-1465101046530-73398c7f28ca?auto=format&fit=crop&w=1600&q=80') center center/cover no-repeat;
  filter: brightness(0.82) blur(0.7px);
  will-change: transform;
  transition: transform 0.9s cubic-bezier(.45, 1.23, .53, .93);
}

.ggt-hero-bg-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(123deg, rgba(0, 121, 70, 0.76) 0%, rgba(74, 144, 164, 0.60) 99%);
  z-index: 2;
}

.ggt-hero-bg-shapes {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 3;
}

.ggt-hero-shape {
  position: absolute;
  border-radius: 50%;
  opacity: 0.28;
  filter: blur(0.5px);
  pointer-events: none;
}

.ggt-shape-green {
  background: #007946;
  width: 260px;
  height: 260px;
  left: -80px;
  top: 30%;
  animation: heroShapeAnim 14s linear infinite;
}

.ggt-shape-yellow {
  background: #f6f3b5;
  width: 120px;
  height: 120px;
  right: 7vw;
  top: 18%;
  animation: heroShapeAnim2 12s linear infinite;
}

.ggt-shape-blue {
  background: #4A90A4;
  width: 200px;
  height: 200px;
  left: 40vw;
  bottom: 0;
  animation: heroShapeAnim3 19s linear infinite;
}

@keyframes heroShapeAnim {
  0% {
    top: 36%;
  }

  50% {
    top: 31%;
  }

  100% {
    top: 36%;
  }
}

@keyframes heroShapeAnim2 {
  0% {
    top: 18%;
  }

  50% {
    top: 22%;
  }

  100% {
    top: 18%;
  }
}

@keyframes heroShapeAnim3 {
  0% {
    left: 41vw;
  }

  50% {
    left: 46vw;
  }

  100% {
    left: 41vw;
  }
}

.ggt-hero-slider {
  position: relative;
  z-index: 5;
  width: 100%;
  max-width: 1220px;
  min-height: 540px;
  margin: 0 auto;
  display: flex;
  align-items: stretch;
  flex-direction: column;
}

.ggt-hero-slide {
  display: none;
  align-items: stretch;
  justify-content: space-between;
  gap: 2.4rem;
  width: 100%;
  min-height: 440px;
  animation: heroSlideIn 0.85s both;
}

@keyframes heroSlideIn {
  from {
    opacity: 0;
    transform: translateY(40px) scale(0.97);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.ggt-hero-slide-active {
  display: flex;
}

.ggt-hero-main {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 0 2.2rem;
}

.ggt-hero-title {
  font-size: 2.9rem;
  line-height: 1.13;
  font-weight: 800;
  color: #fff;
  margin-bottom: 1.3rem;
  letter-spacing: -1.5px;
  text-shadow: 0 6px 36px rgba(0, 121, 70, 0.10);
  position: relative;
}

.ggt-hero-gradient-text {
  background: linear-gradient(94deg, #b8e6b8 8%, #f6f3b5 52%, #4A90A4 98%);
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 900;
  letter-spacing: -1.5px;
  animation: heroGradientAnim 3.2s infinite alternate;
}

@keyframes heroGradientAnim {
  0% {
    filter: brightness(1.1);
  }

  100% {
    filter: brightness(0.93);
  }
}

.ggt-hero-badge {
  display: inline-block;
  background: #fff;
  color: #007946;
  font-size: 1rem;
  font-weight: 600;
  border-radius: 16px;
  padding: 0.33em 1.2em;
  margin-bottom: 0.92em;
  letter-spacing: 0.04em;
  box-shadow: 0 3px 18px 0 rgba(0, 121, 70, 0.08);
  animation: heroBadgeAnim 1.4s .2s both;
}

.ggt-hero-badge-blue {
  color: #fff;
  background: #4A90A4;
}

@keyframes heroBadgeAnim {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.ggt-hero-subtitle {
  font-size: 1.25rem;
  color: #fdfbf7;
  font-family:  var(--font-primary);
  font-weight: 400;
  margin-bottom: 2.2rem;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.08);
  max-width: 470px;
}

.ggt-hero-cta-row {
  display: flex;
  gap: 1.2rem;
  align-items: center;
}

.ggt-hero-btn {
  padding: 0.8rem 2.4rem;
  border-radius: 2rem;
  font-size: 1.08rem;
  font-weight: 700;
  border: none;
  outline: none;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.21s, color 0.19s, transform 0.14s, box-shadow 0.19s;
  letter-spacing: 0.04em;
  box-shadow: 0 6px 28px rgba(74, 144, 164, 0.11);
  position: relative;
}

.ggt-hero-btn-main {
  background: linear-gradient(95deg, #007946, #4A90A4 80%);
  color: #fff;
}

.ggt-hero-btn-main:hover,
.ggt-hero-btn-main:focus {
  background: linear-gradient(105deg, #f6f3b5, #007946 100%);
  color: #2c3e50;
  transform: translateY(-2px) scale(1.04);
}

.ggt-hero-btn-outline {
  background: rgba(253, 251, 247, 0.14);
  color: #fdfbf7;
  border: 2px solid #b8e6b8;
}

.ggt-hero-btn-outline:hover,
.ggt-hero-btn-outline:focus {
  background: #fff;
  color: #007946;
  border-color: #007946;
  transform: scale(1.04);
}

.ggt-hero-aside {
  flex: 0 0 350px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin-right: 1.7rem;
  animation: ggtAsideIn 1.2s both;
}

@keyframes ggtAsideIn {
  from {
    opacity: 0;
    transform: translateY(44px) scale(.95);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.ggt-hero-image-box {
  position: relative;
  width: 300px;
  height: 360px;
  border-radius: 1.3rem;
  overflow: hidden;
  box-shadow: 0 10px 35px 0 rgba(74, 144, 164, 0.19), 0 1.5px 18px 0 rgba(0, 121, 70, 0.09);
  background: #e2e8f0;
  will-change: transform;
  animation: ggtImagePop 1.15s .18s both cubic-bezier(.45, 1.23, .53, .93);
}

@keyframes ggtImagePop {
  0% {
    opacity: 0;
    transform: scale(.92) translateY(30px);
  }

  100% {
    opacity: 1;
    transform: none;
  }
}

.ggt-hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: brightness(.96) contrast(1.11);
  transition: filter .22s;
}

.ggt-hero-image-box:hover .ggt-hero-img {
  filter: brightness(1.03) contrast(1.08) saturate(1.04) blur(0.5px);
}

.ggt-hero-image-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.3rem 1.2rem 1.3rem 1.2rem;
  background: linear-gradient(0deg, rgba(44, 62, 80, 0.77) 83%, rgba(0, 0, 0, 0.09) 100%);
  color: #fff;
  backdrop-filter: blur(2.2px);
  border-bottom-left-radius: 1.3rem;
  border-bottom-right-radius: 1.3rem;
  z-index: 2;
}

.ggt-hero-img-label {
  font-size: 1.15rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  letter-spacing: 0.03em;
}

.ggt-hero-img-icon {
  font-size: 1.3rem;
  background: linear-gradient(95deg, #f6f3b5 65%, #4A90A4 100%);
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 2px 10px #b8e6b8);
}

.ggt-hero-img-desc {
  font-size: 1.02rem;
  font-weight: 500;
  color: #b8e6b8;
  opacity: 0.92;
  margin-top: 0.14rem;
}

@media (max-width: 850px) {
  .ggt-hero-aside {
    display: none;
  }
}

.ggt-hero-feature {
  background: rgba(255, 255, 255, 0.18);
  border-radius: 1.2rem;
  padding: 1.1rem 1.5rem;
  display: flex;
  align-items: center;
  gap: 1.1rem;
  min-width: 145px;
  margin-bottom: 1rem;
  box-shadow: 0 2px 14px 0 rgba(0, 121, 70, 0.09);
  animation: heroStatAnim 1s both;
}

.ggt-hero-feature-icon {
  font-size: 1.9rem;
  color: #4A90A4;
  background: #fff;
  border-radius: 1.5rem;
  padding: 0.25em 0.5em;
  box-shadow: 0 1px 7px 0 rgba(74, 144, 164, 0.15);
}

.ggt-hero-feature-title {
  font-size: 1.22rem;
  font-weight: 700;
  color: #b8e6b8;
  margin-bottom: 0.07rem;
}

.ggt-hero-feature-label {
  font-size: 1.01rem;
  color: #fff;
  opacity: 0.86;
}

.ggt-hero-slider-dots {
  position: absolute;
  left: 2.2rem;
  bottom: 2.3rem;
  display: flex;
  gap: 14px;
  z-index: 10;
}

.ggt-hero-slider-dot {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  border: 2.5px solid #fff;
  background: rgba(0, 121, 70, 0.21);
  cursor: pointer;
  transition: background 0.17s, border-color 0.17s, transform 0.17s;
  outline: none;
}

.ggt-hero-slider-dot.active,
.ggt-hero-slider-dot:hover {
  background: #b8e6b8;
  border-color: #007946;
  transform: scale(1.13);
}

.ggt-hero-scroll-arrow {
  position: absolute;
  left: 50%;
  bottom: 1.2rem;
  transform: translateX(-50%);
  z-index: 11;
  display: flex;
  justify-content: center;
  width: 56px;
  height: 42px;
}

.ggt-hero-scroll-arrow span {
  width: 34px;
  height: 34px;
  border-bottom: 4px solid #b8e6b8;
  border-right: 4px solid #b8e6b8;
  transform: rotate(45deg);
  margin-top: 10px;
  animation: ggtArrowBounce 1.7s infinite cubic-bezier(.72, -0.03, .47, 1.13);
  opacity: 0.9;
}

@keyframes ggtArrowBounce {

  0%,
  100% {
    transform: rotate(45deg) translateY(0);
  }

  45% {
    transform: rotate(45deg) translateY(9px);
  }

  75% {
    transform: rotate(45deg) translateY(3px);
  }
}

/* Responsive */
@media (max-width: 1050px) {
  .ggt-hero-aside {
    display: none;
  }

  .ggt-hero-main {
    max-width: 97vw;
  }

  .ggt-hero {
    padding-top: 3.5rem;
  }
}

@media (max-width: 700px) {
  .ggt-hero-title {
    font-size: 1.37rem;
  }

  .ggt-hero-main {
    padding: 0 0.3rem;
  }

  .ggt-hero-slider {
    min-height: 325px;
  }

  .ggt-hero-btn {
    padding: 0.65rem 1.6rem;
  }

  .ggt-hero-slider-dots {
    left: 50%;
    bottom: 0.7rem;
    transform: translateX(-50%);
  }

  .ggt-hero-subtitle {
    font-size: 0.97rem;
  }
}






/*======================================================
ABOUT PAGE STYLES
====================================================== */







/*======================================================
SOLUTIONS PAGE STYLES
====================================================== */

.solutions-hero-section {
  position: relative;
  min-height: 540px;
  background: transparent;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: 0;
}

.solutions-hero-bg {
  position: absolute;
  inset: 0;
  width: 100vw;
  height: 100%;
  overflow: hidden;
  z-index: 0;
}

.solutions-hero-gradient-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, #007946 0%, #4A90A4 90%);
  opacity: 0.93;
}

.solutions-hero-pattern {
  position: absolute;
  inset: 0;
  background: url("https://www.transparenttextures.com/patterns/geometry2.png");
  opacity: 0.12;
  z-index: 1;
}

.solutions-hero-container {
  position: relative;
  z-index: 2;
  max-width: 1280px;
  margin: 0 auto;
  padding: 6rem 2rem 3.2rem 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3.2rem;
}

.solutions-hero-content {
  flex: 2;
  min-width: 250px;
  max-width: 570px;
}

.solutions-hero-title {
  font-size: 2.6rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.09;
  margin-bottom: 1.2rem;
  letter-spacing: -1.2px;
  text-shadow: 0 2px 22px rgba(0, 0, 0, 0.09);
}

.solutions-hero-accent {
  background: linear-gradient(90deg, #F6F3B5 30%, #B8E6B8 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.solutions-hero-subtitle {
  color: #f5f7fa;
  font-size: 1.13rem;
  font-weight: 400;
  margin-bottom: 2.1rem;
  line-height: 1.6;
  max-width: 500px;
}

.solutions-hero-actions {
  display: flex;
  gap: 1.1rem;
  align-items: center;
  flex-wrap: wrap;
}

.solutions-hero-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.38em;
  border-radius: 1.2em;
  font-size: 1.08rem;
  font-weight: 700;
  padding: 0.69em 2.12em;
  cursor: pointer;
  border: none;
  text-decoration: none;
  box-shadow: 0 2px 10px 0 rgba(44, 62, 80, 0.08);
  transition: background 0.17s, color 0.16s, box-shadow 0.18s, transform 0.17s;
}

.solutions-hero-btn-primary {
  background: linear-gradient(90deg, #007946 70%, #4A90A4 100%);
  color: #fff;
}

.solutions-hero-btn-primary:hover {
  background: #b8e6b8;
  color: #007946;
  transform: translateY(-2px) scale(1.045);
}

.solutions-hero-btn-ghost {
  background: #fdfbf7;
  color: #007946;
  border: 1.5px solid #b8e6b8;
}

.solutions-hero-btn-ghost:hover {
  background: #007946;
  color: #fff;
  border-color: #007946;
  transform: translateY(-2px) scale(1.045);
}

.solutions-hero-btn-icon {
  font-size: 1.2em;
  margin-left: 0.1em;
}

.solutions-hero-visual {
  flex: 1.4;
  min-width: 220px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  flex-direction: column;
  gap: 1.35rem;
  z-index: 3;
}

.solutions-hero-floating-card {
  background: #fff;
  border-radius: 1.4em;
  box-shadow: 0 7px 23px 0 rgba(76, 110, 81, 0.13);
  display: flex;
  align-items: center;
  gap: 1.05rem;
  min-width: 230px;
  padding: 1.3rem 1.5rem;
  margin-bottom: 0.5rem;
  opacity: 0;
  transform: translateY(36px) scale(0.98);
  animation: solutionsHeroFloatCard 1.1s forwards;
  animation-delay: var(--delay, 0s);
}

@keyframes solutionsHeroFloatCard {
  to {
    opacity: 1;
    transform: none;
  }
}

.solutions-hero-card-icon {
  font-size: 2.3em;
  color: #007946;
  filter: drop-shadow(0 2px 10px #b8e6b888);
}

.solutions-hero-card-title {
  font-size: 1.15em;
  color: #007946;
  font-weight: 700;
  margin-bottom: 0.05em;
}

.solutions-hero-card-subtitle {
  color: #4A5568;
  font-size: 1em;
  opacity: 0.87;
}

/* Floating background orbs */
.solutions-hero-floating-elements {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}

.solutions-hero-floating-element {
  position: absolute;
  width: 65px;
  height: 65px;
  border-radius: 50%;
  background: linear-gradient(120deg, #b8e6b8 30%, #f6f3b5 100%);
  opacity: 0.19;
  left: calc(14% + 6vw);
  top: 28%;
  animation: solutionsHeroFloat var(--duration, 8s) linear infinite;
  animation-delay: var(--delay, 0s);
  box-shadow: 0 2px 12px 0 #00794633;
}

.solutions-hero-floating-element:nth-child(2) {
  width: 45px;
  height: 45px;
  left: 60%;
  top: 9%;
  opacity: 0.14;
}

.solutions-hero-floating-element:nth-child(3) {
  width: 100px;
  height: 100px;
  left: 83%;
  top: 52%;
  opacity: 0.22;
}

@keyframes solutionsHeroFloat {
  0% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-42px) scale(1.06);
  }

  100% {
    transform: translateY(0);
  }
}

/* Responsive */
@media (max-width: 1020px) {
  .solutions-hero-container {
    flex-direction: column;
    align-items: flex-start;
    padding: 4.7rem 1.2rem 2.5rem 1.2rem;
    gap: 2.1rem;
  }

  .solutions-hero-visual {
    justify-content: flex-start;
    margin-top: 1.7rem;
    flex-direction: row;
    width: 100%;
  }

  .solutions-hero-floating-card {
    margin-bottom: 0;
    min-width: 160px;
    padding: 1.1rem 1.2rem;
    font-size: 0.98em;
  }
}

@media (max-width: 700px) {
  .solutions-hero-section {
    min-height: 320px;
    margin-top: var(--space-mobile-top);
  }

  .solutions-hero-bg {
    min-height: 320px;
  }

  .solutions-hero-container {
    padding: 3rem 0.3rem 1.2rem 0.3rem;
    gap: 0.5rem;
  }

  .solutions-hero-title {
    font-size: 1.34rem;
    margin-bottom: 0.7rem;
  }

  .solutions-hero-subtitle {
    font-size: 0.99rem;
    margin-bottom: 1.1rem;
  }

  .solutions-hero-btn {
    font-size: 0.99rem;
    padding: 0.6em 1.3em;
  }

  .solutions-hero-visual {
    flex-direction: column;
    gap: 0.85rem;
    min-width: 0;
    width: 100%;
  }

  .solutions-hero-floating-card {
    min-width: 120px;
    font-size: 0.93em;
    padding: 0.85rem 0.8rem;
  }
}

.solutions-grid-section {
  padding: 3rem 0 2.5rem 0;
  background: var(--cream-white);
}

.solutions-grid-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.solutions-grid-header {
  margin-bottom: 2.3rem;
}

.solutions-grid-text-center {
  text-align: center;
}

/* Grid Layout */
.solutions-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(310px, 1fr));
  gap: 2.1rem 1.6rem;
}

.solutions-grid-card {
  background: #fff;
  border-radius: 1.25em;
  box-shadow: 0 7px 23px 0 rgba(76, 110, 81, 0.13);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.19s, box-shadow 0.17s;
  animation: fadeInUp 1s;
}

.solutions-grid-card:hover {
  transform: translateY(-7px) scale(1.025);
  box-shadow: 0 16px 28px 0 rgba(0, 121, 70, 0.14);
}

.solutions-grid-card-image img {
  width: 100%;
  height: 180px;
  object-fit: cover;
}

.solutions-grid-card-content {
  padding: 1.15em 1.4em 1.2em 1.4em;
  display: flex;
  flex-direction: column;
}

.solutions-grid-card-title {
  font-size: 1.11rem;
  color: var(--charcoal);
  font-weight: 700;
  margin-bottom: 0.46em;
}

.solutions-grid-card-description {
  color: var(--dark-gray);
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 0.6em;
  text-align: justify;
}

.solutions-grid-card-stats {
  display: flex;
  gap: 1.3em;
  margin-bottom: 0.9em;
}

.solutions-grid-stat-number {
  font-size: 1.16em;
  font-weight: 700;
  color: var(--sage-green);
}

.solutions-grid-stat-label {
  color: var(--charcoal);
  font-size: 0.93em;
}

.solutions-grid-card-link {
  color: var(--sage-green);
  font-weight: 600;
  text-decoration: none;
  margin-top: 0.6em;
  display: inline-block;
  transition: color 0.17s;
}

.solutions-grid-card-link:hover {
  color: var(--ocean-blue);
}

.solutions-grid-link-arrow {
  font-size: 1.1em;
}

/* Consulting Card Features */
.solutions-grid-card-features {
  display: flex;
  gap: 0.6em;
  flex-wrap: wrap;
  margin-top: 0.6em;
}

.solutions-grid-feature-tag {
  background: var(--mint-fresh);
  color: var(--sage-green);
  border-radius: 1.1em;
  padding: 0.28em 0.83em;
  font-size: 0.92em;
  font-weight: 500;
}

@media (max-width:900px) {
  .solutions-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width:700px) {
  .solutions-grid {
    grid-template-columns: 1fr;
    gap: 1.1rem;
  }

  .solutions-grid-card-image img {
    height: 140px;
  }

  .solutions-grid-card-content {
    padding: 1em 0.8em 1em 0.8em;
  }
  .solutions-grid-card-description {
  color: var(--dark-gray);
  font-size: 1rem;
  margin-bottom: 0.6em;
  text-align: justify;
}

}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(36px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

/* --- Process Section --- */
.solutions-process-section {
  background: var(--light-gray);
  padding: 3.5rem 0 2.5rem 0;
}

.solutions-process-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.solutions-process-header {
  margin-bottom: 2.2rem;
}

.solutions-process-text-center {
  text-align: center;
}

.solutions-process-gradient-btn {
  display: inline-block;
  background: var(--gradient-primary, linear-gradient(135deg, #007946, #4A90A4));
  color: #fff;
  padding: 0.34em 1.35em;
  border-radius: 2em;
  font-weight: 600;
  font-size: 1rem;
  margin-bottom: 1.05rem;
  box-shadow: 0 2px 8px 0 rgba(44, 62, 80, 0.07);
  letter-spacing: 0.02em;
}

.solutions-process-title {
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: -0.5px;
  color: var(--sage-green);
}

.solutions-process-subtitle {
  color: var(--ocean-blue);
  font-size: 1.09rem;
}

.solutions-process-timeline {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  gap: 2.1rem 1.8rem;
  margin-top: 2.3rem;
}

.solutions-process-step {
  background: #fff;
  border-radius: 1.25em;
  box-shadow: 0 6px 22px 0 rgba(76, 110, 81, 0.09);
  padding: 2rem 1.3rem 1.4rem 1.3rem;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  animation: fadeInUp 1.2s;
  transition: transform 0.17s, box-shadow 0.14s;
}

.solutions-process-step:hover {
  transform: translateY(-8px) scale(1.03);
  box-shadow: 0 12px 32px 0 rgba(0, 121, 70, 0.11);
}

.solutions-process-step-number {
  background: var(--mint-fresh);
  color: var(--sage-green);
  font-size: 1.1em;
  font-weight: 700;
  border-radius: 1em;
  padding: 0.21em 0.9em;
  box-shadow: 0 2px 8px 0 #b8e6b833;
  margin-bottom: 0.6em;
  letter-spacing: 0.01em;
}

.solutions-process-step-icon {
  font-size: 2.1em;
  margin-bottom: 0.6em;
  color: var(--sage-green);
}

.solutions-process-step-title {
  font-size: 1.12em;
  color: var(--sage-green);
  font-weight: 700;
  margin-bottom: 0.35em;
}

.solutions-process-step-desc {
  color: var(--dark-gray);
  font-size: 1.01rem;
  margin-bottom: 0.75em;
}

.solutions-process-step-features {
  padding: 0;
  margin: 0;
  list-style: disc inside;
  color: var(--charcoal);
  font-size: 0.99rem;
}

.solutions-process-step-features li {
  margin-bottom: 0.2em;
}

@media (max-width:850px) {
  .solutions-process-timeline {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width:700px) {
  .solutions-process-timeline {
    grid-template-columns: 1fr;
    gap: 1.1rem;
  }

  .solutions-process-section {
    padding: 2.2rem 0 1.2rem 0;
  }

  .solutions-process-title {
    font-size: 1.33rem;
  }

  .solutions-process-step {
    padding: 1.25rem 0.7rem;
  }
}

/* --- Technology Showcase --- */
.solutions-tech-section {
  background: #fff;
  padding: 3.3rem 0 2.3rem 0;
}

.solutions-tech-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.solutions-tech-header {
  margin-bottom: 2.2rem;
}

.solutions-tech-text-center {
  text-align: center;
}

.solutions-tech-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 2rem 1.4rem;
  margin-top: 2.5rem;
}

.solutions-tech-card {
  background: var(--mint-fresh);
  border-radius: 1.15em;
  box-shadow: 0 5px 20px 0 rgba(44, 62, 80, 0.10);
  padding: 2.1rem 1rem 1.1rem 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition: transform 0.17s, box-shadow 0.14s;
  animation: fadeInUp 1.05s;
}

.solutions-tech-card:hover {
  transform: translateY(-7px) scale(1.04);
  box-shadow: 0 15px 32px 0 rgba(0, 121, 70, 0.13);
}

.solutions-tech-icon {
  font-size: 2.4em;
  margin-bottom: 0.8em;
  color: var(--sage-green);
}

.solutions-tech-card-title {
  font-size: 1.09em;
  color: var(--sage-green);
  font-weight: 700;
  margin-bottom: 0.34em;
}

.solutions-tech-card-desc {
  color: var(--dark-gray);
  font-size: 1.01rem;
}

@media (max-width:700px) {
  .solutions-tech-section {
    padding: 2rem 0 1.2rem 0;
  }

  .solutions-tech-grid {
    gap: 1rem;
  }

  .solutions-tech-card {
    padding: 1.3rem 0.7rem;
  }
}

/* --- Animations (simple fade in up) --- */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(36px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

/* Impact Metrics */
.solutions-impact-section {
  background: var(--gradient-primary, linear-gradient(120deg, #007946, #4A90A4));
  padding: 3.3rem 0 2.1rem 0;
}

.solutions-impact-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.solutions-impact-header {
  margin-bottom: 2.3rem;
}

.solutions-impact-text-center {
  text-align: center;
}

.solutions-impact-badge {
  display: inline-block;
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
  padding: 0.33em 1.22em;
  border-radius: 2em;
  font-weight: 600;
  font-size: 1rem;
  margin-bottom: 1.06rem;
  box-shadow: 0 2px 8px 0 rgba(44, 62, 80, 0.04);
  letter-spacing: 0.02em;
}

.solutions-impact-title {
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: -0.5px;
  color: #fff;
}

.solutions-impact-subtitle {
  color: #fdfbf7;
  font-size: 1.08rem;
}

.solutions-impact-metrics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 2rem 1.4rem;
  margin-top: 2.5rem;
}

.solutions-impact-metric-card {
  background: rgba(255, 255, 255, 0.13);
  border-radius: 1.15em;
  box-shadow: 0 5px 22px 0 rgba(0, 0, 0, 0.08);
  padding: 2.1rem 1rem 1.1rem 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  color: #fff;
  animation: fadeInUp 1.05s;
  transition: transform 0.17s, box-shadow 0.15s;
}

.solutions-impact-metric-card:hover {
  transform: translateY(-7px) scale(1.04);
  box-shadow: 0 16px 38px 0 rgba(0, 121, 70, 0.15);
}

.solutions-impact-metric-icon {
  font-size: 2.5em;
  margin-bottom: 0.7em;
}

.solutions-impact-metric-number {
  font-size: 2.3em;
  font-weight: 700;
  letter-spacing: -1.5px;
}

.solutions-impact-metric-unit {
  font-size: 1.1em;
  margin-bottom: 0.1em;
  opacity: 0.85;
}

.solutions-impact-metric-label {
  color: #f6f3b5;
  opacity: 0.93;
  font-size: 1.07em;
  margin-top: 0.5em;
}

@media (max-width:700px) {
  .solutions-impact-section {
    padding: 2rem 0 1.2rem 0;
  }

  .solutions-impact-title {
    font-size: 1.21rem;
  }

  .solutions-impact-metrics-grid {
    gap: 1rem;
  }

  .solutions-impact-metric-card {
    padding: 1.3rem 0.7rem;
  }
}

/* Success Stories */
.solutions-stories-section {
  background: #fff;
  padding: 3.3rem 0 2.3rem 0;
}

.solutions-stories-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.solutions-stories-header {
  margin-bottom: 2.2rem;
}

.solutions-stories-text-center {
  text-align: center;
}

.solutions-stories-badge {
  display: inline-block;
  background: var(--gradient-primary, linear-gradient(135deg, #007946, #4A90A4));
  color: #fff;
  padding: 0.34em 1.27em;
  border-radius: 2em;
  font-weight: 600;
  font-size: 1rem;
  margin-bottom: 1.02rem;
  box-shadow: 0 2px 8px 0 rgba(44, 62, 80, 0.07);
  letter-spacing: 0.03em;
}

.solutions-stories-title {
  font-size: 2.01rem;
  font-weight: 700;
  letter-spacing: -0.5px;
  color: var(--sage-green);
}

.solutions-stories-subtitle {
  color: var(--ocean-blue);
  font-size: 1.09rem;
}

.solutions-stories-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(310px, 1fr));
  gap: 2.1rem 1.6rem;
  margin-top: 2.3rem;
}

.solutions-stories-card {
  background: #fff;
  border-radius: 1.22em;
  box-shadow: 0 7px 23px 0 rgba(76, 110, 81, 0.13);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.19s, box-shadow 0.17s;
  animation: fadeInUp 1s;
}

.solutions-stories-card:hover {
  transform: translateY(-7px) scale(1.025);
  box-shadow: 0 16px 28px 0 rgba(0, 121, 70, 0.15);
}

.solutions-stories-image {
  position: relative;
}

.solutions-stories-image img {
  width: 100%;
  height: 180px;
  object-fit: cover;
}

.solutions-stories-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(125deg, rgba(0, 121, 70, 0.09), rgba(76, 144, 164, 0.13));
  pointer-events: none;
}

.solutions-stories-content {
  padding: 1.12em 1.4em 1.2em 1.4em;
  display: flex;
  flex-direction: column;
}

.solutions-stories-tag {
  background: var(--mint-fresh);
  color: var(--sage-green);
  border-radius: 1.1em;
  padding: 0.28em 0.83em;
  font-size: 0.92em;
  font-weight: 500;
  display: inline-block;
  margin-bottom: 0.65em;
}

.solutions-stories-card-title {
  font-size: 1.11rem;
  color: var(--charcoal);
  font-weight: 700;
  margin-bottom: 0.39em;
}

.solutions-stories-card-desc {
  color: var(--dark-gray);
  font-size: 1.02rem;
  line-height: 1.6;
  margin-bottom: 0.55em;
}

.solutions-stories-card-link {
  color: var(--sage-green);
  font-weight: 600;
  text-decoration: none;
  margin-top: 0.6em;
  display: inline-block;
  transition: color 0.17s;
}

.solutions-stories-card-link:hover {
  color: var(--ocean-blue);
}

.solutions-stories-link-arrow {
  font-size: 1.1em;
}

@media (max-width:700px) {
  .solutions-stories-section {
    padding: 2rem 0 1.2rem 0;
  }

  .solutions-stories-title {
    font-size: 1.22rem;
  }

  .solutions-stories-grid {
    grid-template-columns: 1fr;
    gap: 1.1rem;
  }

  .solutions-stories-image img {
    height: 140px;
  }

  .solutions-stories-content {
    padding: 1em 0.8em 1em 0.8em;
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(36px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}



/*======================================================
RESEARCH PAGE STYLES
====================================================== */

/* Hero Structure */
.research-hero-section {
  position: relative;
  min-height: 520px;
  background: transparent;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: 0;
}

.research-hero-bg {
  position: absolute;
  inset: 0;
  width: 100vw;
  height: 100%;
  overflow: hidden;
  z-index: 0;
}

.research-hero-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, #007946 0%, #4A90A4 80%);
  opacity: 0.93;
}

.research-hero-pattern {
  position: absolute;
  inset: 0;
  background: url("https://www.transparenttextures.com/patterns/geometry2.png");
  opacity: 0.15;
  z-index: 1;
}

.research-hero-container {
  position: relative;
  z-index: 3;
  max-width: 1280px;
  margin: 0 auto;
  padding: 5.3rem 2rem 2.8rem 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
}

.research-hero-content {
  flex: 2;
  min-width: 260px;
  max-width: 580px;
}

.research-hero-badge {
  background: #b8e6b8;
  color: #007946;
  display: inline-block;
  font-weight: 600;
  font-size: 1rem;
  padding: 0.48em 1.3em;
  border-radius: 2em;
  margin-bottom: 1.1rem;
  box-shadow: 0 2px 8px 0 rgba(34, 52, 34, 0.07);
  letter-spacing: 0.02em;
  animation: fadeInUp 1s;
}


.research-hero-title-1{
  margin-top: 1.5em;


}


.research-hero-gradient-text-1 {
  background-clip: text;
  text-align:center;
  margin: auto;
  color: var(--sage-green);
  font-size: 2.2rem;
  font-weight: 800;

}

.research-hero-subtitle {
  color: #f5f7fa;
  font-size: 1.15rem;
  font-weight: 400;
  margin-bottom: 1.8rem;
  line-height: 1.6;
  max-width: 520px;
  animation: fadeInUp 1.1s;
}

.research-hero-actions {
  display: flex;
  gap: 1.1rem;
  align-items: center;
  flex-wrap: wrap;
  animation: fadeInUp 1.15s;
}

.research-hero-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  border-radius: 1.2em;
  font-size: 1.1rem;
  font-weight: 600;
  padding: 0.7em 2.1em;
  cursor: pointer;
  border: none;
  text-decoration: none;
  box-shadow: 0 2px 10px 0 rgba(44, 62, 80, 0.08);
  transition: background 0.18s, color 0.16s, box-shadow 0.18s, transform 0.17s;
}

.research-hero-btn-primary {
  background: linear-gradient(90deg, #007946 60%, #4A90A4 100%);
  color: #fff;
}

.research-hero-btn-primary:hover {
  background: #b8e6b8;
  color: #007946;
  transform: translateY(-2px) scale(1.04);
}

.research-hero-btn-ghost {
  background: #fdfbf7;
  color: #007946;
  border: 1.5px solid #b8e6b8;
}

.research-hero-btn-ghost:hover {
  background: #007946;
  color: #fff;
  border-color: #007946;
  transform: translateY(-2px) scale(1.04);
}

.research-hero-btn-icon {
  font-size: 1.2em;
  margin-left: 0.1em;
}

.research-hero-visual {
  flex: 1.3;
  min-width: 250px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  animation: fadeInLeft 1.1s;
}

.research-hero-stats {
  display: flex;
  flex-direction: row;
  gap: 1.2rem;
  background: rgba(253, 251, 247, 0.93);
  padding: 2.1rem 1.3rem;
  border-radius: 2em;
  box-shadow: 0 6px 24px 0 rgba(44, 62, 80, 0.10);
  align-items: flex-start;
  min-width: 190px;
}

.research-hero-stat-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.9em;
  margin-bottom: 0.2em;
}

.research-hero-stat-icon {
  font-size: 1.6em;
  margin-bottom: 0.16em;
  color: #007946;
  filter: drop-shadow(0 2px 10px #b8e6b8cc);
}

.research-hero-stat-number {
  font-size: 2rem;
  font-weight: 700;
  color: #007946;
  letter-spacing: 0.01em;
  line-height: 1.1;
  transition: color 0.18s;
}

.research-hero-stat-label {
  color: #4A5568;
  font-size: 1rem;
  margin-top: 0.1em;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translateX(32px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

/* Floating Animation */
.research-hero-floating-elements {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
}

.research-hero-floating-element {
  position: absolute;
  width: 65px;
  height: 65px;
  border-radius: 50%;
  background: linear-gradient(120deg, #b8e6b8 30%, #f6f3b5 100%);
  opacity: 0.21;
  left: calc(14% + 7vw);
  top: 24%;
  animation: researchHeroFloat var(--duration, 8s) linear infinite;
  animation-delay: var(--delay, 0s);
  box-shadow: 0 2px 12px 0 #00794633;
}

.research-hero-floating-element:nth-child(2) {
  width: 45px;
  height: 45px;
  left: 60%;
  top: 8%;
  opacity: 0.18;
}

.research-hero-floating-element:nth-child(3) {
  width: 95px;
  height: 95px;
  left: 83%;
  top: 44%;
  opacity: 0.24;
}

@keyframes researchHeroFloat {
  0% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-38px) scale(1.06);
  }

  100% {
    transform: translateY(0);
  }
}

/* Responsive */
@media (max-width: 1020px) {
  .research-hero-container {
    flex-direction: column;
    align-items: flex-start;
    padding: 4.5rem 1.2rem 2.5rem 1.2rem;
    gap: 1.8rem;
  }

  .research-hero-visual {
    justify-content: flex-start;
    margin-top: 1.7rem;
  }

  .research-hero-content {
    max-width: 100vw;
  }
}

@media (max-width: 700px) {
  .research-hero-section {
    min-height: 320px;
    margin-top: var(--space-mobile-top);
  }

  .research-hero-bg {
    min-height: 320px;
  }

  .research-hero-container {
    padding: 3rem 0.3rem 1.2rem 0.3rem;
    gap: 0.6rem;
  }

  .research-hero-title {
    font-size: 1.3rem;
    margin-bottom: 0.6rem;
  }

  .research-hero-badge {
    font-size: 0.98rem;
    padding: 0.42em 1em;
    margin-bottom: 0.6rem;
  }

  .research-hero-subtitle {
    font-size: 0.97rem;
    margin-bottom: 1rem;
  }

  .research-hero-stats {
    padding: 1.2rem 0.7rem;
    min-width: 120px;
    max-width: 90vw;
  }

  .research-hero-btn {
    font-size: 0.98rem;
    padding: 0.6em 1.4em;
  }
}

/* Utility containers & centering */
.research-section {
  padding: 3.5rem 0 2.5rem 0;
  background: var(--cream-white);
}

.research-section.bg-light {
  background: var(--light-gray);
}

.research-section-header {
  margin-bottom: 2.3rem;
}

.research-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.research-text-center {
  text-align: center;
}

.research-section-title {
  font-size: 2.1rem;
  font-weight: 700;
  letter-spacing: -0.4px;
  color: var(--sage-green);
  margin-bottom: 0.2em;
  text-shadow: 0 1.5px 13px rgba(44, 62, 80, 0.08);
  animation: fadeInDown 1s;
}

.research-section-title-light {
  color: #fff;
  text-shadow: 0 2px 20px #1b8b6588;
}

.research-section-subtitle {
  color: var(--ocean-blue);
  font-size: 1.13rem;
}

.research-section-subtitle-light {
  color: #fff !important;
}



/* FILTER TABS */
.research-filter-tabs {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin-bottom: 2.2rem;
  animation: fadeInUp 1s;
}

.research-filter-tab {
  background: var(--cream-white);
  border: 1.5px solid var(--mint-fresh);
  color: var(--sage-green);
  border-radius: 1.2rem;
  font-size: 1rem;
  padding: 0.53rem 1.28rem;
  font-weight: 600;
  box-shadow: 0 2px 6px 0 rgba(76, 110, 81, 0.05);
  cursor: pointer;
  transition: all 0.18s;
}

.research-filter-tab:hover,
.research-filter-tab:focus {
  background: var(--mint-fresh);
  color: var(--sage-green);
  border-color: var(--sage-green);
}

.research-filter-tab.active {
  background: var(--sage-green);
  color: #fff;
  border-color: var(--sage-green);
  box-shadow: 0 2px 10px 0 rgba(0, 121, 70, 0.11);
}

/* MASONRY GRID */
.research-masonry-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 2.1rem 1.5rem;
  animation: fadeInUp 1.2s;
}

.research-masonry-item {
  opacity: 1;
  transition: all 0.34s cubic-bezier(0.4, 0, 0.2, 1);
}

.research-masonry-item.hide {
  opacity: 0;
  pointer-events: none;
  transform: scale(0.94) translateY(50px);
}

.research-masonry-item.large {
  grid-row: span 2;
}

.research-masonry-item.medium {
  grid-row: span 1.3;
}

.publication-card {
  background: #fff;
  border-radius: 1.3em;
  box-shadow: 0 7px 23px 0 rgba(76, 110, 81, 0.11);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.19s, box-shadow 0.17s;
  animation: fadeInUp 1s;
}

.publication-card:hover {
  transform: translateY(-6px) scale(1.03);
  box-shadow: 0 16px 28px 0 rgba(0, 121, 70, 0.13);
}

.card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.99rem;
  padding: 1.1em 1.2em 0.1em;
}

.publication-type {
  color: var(--sage-green);
  font-weight: 600;
}

.publication-date {
  color: var(--ocean-blue);
  font-size: 0.97rem;
}

.card-image img {
  width: 100%;
  height: 150px;
  object-fit: cover;
  border-radius: 1.1em 1.1em 0 0;
}

.card-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 121, 70, 0.07);
  border-radius: inherit;
}

.card-content {
  padding: 1.1em 1.3em 1.2em 1.3em;
}

.publication-title {
  font-size: 1.13rem;
  color: var(--charcoal);
  font-weight: 700;
  margin-bottom: 0.5em;
}

.publication-excerpt {
  color: var(--dark-gray);
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 0.6em;
}

.publication-tags {
  margin-bottom: 0.5em;
}

.publication-tags .tag {
  background: var(--mint-fresh);
  color: var(--sage-green);
  border-radius: 1.1em;
  padding: 0.28em 0.88em;
  margin-right: 0.3em;
  font-size: 0.93em;
  font-weight: 500;
}

.publication-meta,
.patent-info,
.download-stats,
.key-stat {
  font-size: 0.98em;
  color: var(--charcoal);
  display: flex;
  gap: 0.7em;
  align-items: center;
}

.patent-info {
  flex-direction: column;
  align-items: flex-start;
}

.publication-meta {
  margin-top: 0.48em;
}

.authors {
  font-weight: 500;
  color: var(--ocean-blue);
}

.journal {
  color: var(--sage-green);
}

.card-link {
  color: var(--sage-green);
  font-weight: 600;
  text-decoration: none;
  margin-top: 0.7em;
  display: inline-block;
  transition: color 0.18s;
}

.card-link:hover {
  color: var(--ocean-blue);
}

.key-stat .stat-number {
  font-size: 1.2em;
  font-weight: 700;
  color: var(--sage-green);
}

.downloads {
  color: var(--ocean-blue);
}

@media (max-width:700px) {
  .research-masonry-grid {
    grid-template-columns: 1fr;
    gap: 1.1rem;
  }
}

/* PARTNERSHIPS */
.research-partnerships-grid {
  display: flex;
  gap: 2.5rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 2.5rem;
  animation: fadeInUp 1.1s;
}

.research-partnership-category {
  flex: 1 1 260px;
  min-width: 220px;
  max-width: 350px;
  background: var(--mint-fresh);
  border-radius: 1.1em;
  padding: 1.2em 1.1em;
  margin-bottom: 1.2em;
  box-shadow: 0 3px 13px 0 rgba(76, 110, 81, 0.09);
}

.research-partner-category-title {
  font-size: 1.18rem;
  color: var(--sage-green);
  font-weight: 600;
  margin-bottom: 0.4em;
}

.research-partners-list {
  display: flex;
  flex-direction: column;
  gap: 1em;
}

.research-partner-item {
  display: flex;
  align-items: flex-start;
  gap: 1.1em;
  padding: 0.7em 0;
}

.research-partner-logo {
  font-size: 1.7em;
  color: var(--sage-green);
}

.research-partner-info h4 {
  margin: 0 0 0.1em 0;
  font-size: 1.06em;
  font-weight: 600;
}

.research-partner-info p {
  margin: 0;
  color: var(--dark-gray);
  font-size: 0.97em;
}

@media (max-width:900px) {
  .research-partnerships-grid {
    flex-direction: column;
    gap: 1.3rem;
    align-items: stretch;
  }
}

/* IMPACT METRICS */
.research-impact-section {
  background: linear-gradient(120deg, #007946 60%, #4A90A4 100%);
}

.research-impact-metrics-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  justify-content: center;
  margin-top: 2.4rem;
  margin-bottom: 1.4rem;
  animation: fadeInUp 1.1s;
}

.research-impact-metric-card {
  flex: 1 1 190px;
  min-width: 130px;
  max-width: 260px;
  background: rgba(253, 251, 247, 0.97);
  color: var(--charcoal);
  border-radius: 1.4em;
  box-shadow: 0 7px 23px 0 rgba(44, 62, 80, 0.09);
  padding: 2.1rem 1.1rem 1.2rem 1.1rem;
  text-align: center;
  transition: transform 0.18s, box-shadow 0.15s;
  animation: fadeInUp 1.1s;
}

.research-impact-metric-card:hover {
  transform: scale(1.06) translateY(-5px);
  box-shadow: 0 18px 32px 0 rgba(76, 110, 81, 0.15);
}

.research-impact-metric-icon {
  font-size: 2.08rem;
  color: var(--sage-green);
  margin-bottom: 1rem;
}

.research-impact-metric-number {
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--sage-green);
}

.research-impact-metric-label {
  color: var(--charcoal);
  font-size: 1.1rem;
  margin-top: 0.5rem;
}

.research-impact-metric-unit {
  display: inline;
  font-size: 1.2em;
  color: var(--ocean-blue);
}

@media (max-width:700px) {
  .research-impact-metrics-grid {
    gap: 1rem;
  }
}

/* RESEARCH TEAM */
.research-researchers-grid {
  display: flex;
  gap: 2.5rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 2.5rem;
  animation: fadeInUp 1.1s;
}

.research-researcher-card {
  flex: 1 1 280px;
  min-width: 220px;
  max-width: 340px;
  background: #fff;
  border-radius: 1.3em;
  box-shadow: 0 7px 23px 0 rgba(76, 110, 81, 0.11);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1.5em 1em;
  margin-bottom: 1.2em;
  transition: transform 0.18s, box-shadow 0.14s;
  animation: fadeInUp 1s;
}

.research-researcher-card:hover {
  transform: translateY(-7px) scale(1.04);
  box-shadow: 0 17px 34px 0 rgba(0, 121, 70, 0.12);
}

.research-researcher-image img {
  width: 110px;
  height: 110px;
  object-fit: cover;
  border-radius: 50%;
  margin-bottom: 1.1em;
  box-shadow: 0 3px 12px #00794623;
}

.research-researcher-info {
  text-align: center;
}

.research-researcher-name {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--sage-green);
  margin-bottom: 0.2em;
}

.research-researcher-title {
  color: var(--ocean-blue);
  font-size: 0.99rem;
}

.research-researcher-speciality {
  color: var(--charcoal);
  font-size: 0.98rem;
  margin-bottom: 0.6em;
}

.research-researcher-bio {
  color: var(--dark-gray);
  font-size: 0.96rem;
  margin-bottom: 0.7em;
}

.research-researcher-achievements {
  display: flex;
  gap: 0.5em;
  flex-wrap: wrap;
  justify-content: center;
}

.research-achievement {
  background: var(--mint-fresh);
  color: var(--sage-green);
  border-radius: 1em;
  padding: 0.22em 0.86em;
  font-size: 0.91em;
  font-weight: 500;
}

@media (max-width:900px) {
  .research-researchers-grid {
    flex-direction: column;
    gap: 1.3rem;
    align-items: stretch;
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(36px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-30px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}




/*======================================================
PROJECTS PAGE STYLES
====================================================== */
.project-pg-section {
  padding: 0 0 2.3rem 0;
  background: var(--cream-white);
}

.project-pg-section.bg-light {
  background: var(--light-gray);
}

.project-pg-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.project-pg-section-header {
  text-align: center;
  margin-bottom: 2.3rem;
  margin-top: 2em;
}

.project-pg-all-section-title,
.project-pg-section-title {
  font-size: 2.2rem;
  color: var(--sage-green);
  font-weight: 700;
  letter-spacing: -0.5px;
  margin-bottom: 0.4rem;
  text-shadow: 0 2px 14px rgba(44, 62, 80, 0.07);
  animation: fadeInDown 1s;
}

.project-pg-all-section-subtitle,
.project-pg-section-subtitle {
  color: var(--ocean-blue);
  font-size: 1.14rem;
  font-weight: 400;
  animation: fadeInDown 1.1s;
}

/* FILTER BUTTONS */
.project-pg-project-categories {
  display: flex;
  justify-content: center;
  margin-bottom: 1.5rem;
  animation: fadeInUp 1.1s;
}

.project-pg-category-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}

.project-pg-filter-btn {
  background: var(--cream-white);
  border: 1.5px solid var(--mint-fresh);
  color: var(--sage-green);
  border-radius: 1.2rem;
  font-size: 1rem;
  font-family: var(--font-primary);
  padding: 0.6rem 1.35rem;
  font-weight: 600;
  box-shadow: 0 2px 6px 0 rgba(76, 110, 81, 0.05);
  cursor: pointer;
  transition: background 0.19s, color 0.17s, box-shadow 0.18s, border 0.17s;
}

.project-pg-filter-btn:hover,
.project-pg-filter-btn:focus {
  background: var(--mint-fresh);
  color: var(--sage-green);
  border-color: var(--sage-green);
}

.project-pg-filter-btn.active {
  background: var(--sage-green);
  color: #fff;
  border-color: var(--sage-green);
  box-shadow: 0 2px 10px 0 rgba(0, 121, 70, 0.12);
}

/* FEATURED PROJECTS */
.project-pg-featured-projects {
  display: flex;
  gap: 2.2rem;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 2.7rem;
}

.project-pg-featured-project-card {
  background: #fff;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  flex: 1 1 ;
  min-width: 320px;
  max-width: 430px;
  margin-bottom: 1.4rem;
  animation: fadeInUp 1.1s;
  position: relative;
  transition: transform 0.22s, box-shadow 0.18s;
}

.project-pg-featured-project-card:hover {
  transform: translateY(-8px) scale(1.03);
  box-shadow: 0 18px 30px 0 rgba(76, 110, 81, 0.12);
}

.project-pg-project-image {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  background: var(--mint-fresh);
  overflow: hidden;
}


.project-pg-project-image img {
  width: 100%;
  height: 210px;
  object-fit: cover;
  display: block;
  border-radius: var(--radius-xl) var(--radius-xl) 0 0;
  transition: transform 0.28s;
}

.project-pg-featured-project-card:hover .project-pg-project-image img {
  transform: scale(1.06);
}

.project-pg-project-badge {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: var(--gradient-primary);
  color: #fff;
  font-size: 0.93rem;
  font-weight: 600;
  padding: 0.4rem 1rem;
  border-radius: 1.2rem;
  box-shadow: 0 2px 8px 0 rgba(34, 52, 34, 0.10);
}

.project-pg-project-content {
  padding: 1.3rem 1.2rem 1.1rem 1.2rem;
}

.project-pg-project-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.98rem;
  margin-bottom: 0.8rem;
}

.project-pg-project-type {
  color: var(--sage-green);
  font-weight: 600;
  letter-spacing: 0.01em;
}

.project-pg-project-status {
  color: var(--ocean-blue);
  font-weight: 500;
  font-size: 0.98rem;
}

.project-pg-project-content h3 {
  font-size: 1.24rem;
  color: var(--charcoal);
  margin: 0.4rem 0 0.5rem 0;
  font-weight: 700;
  line-height: 1.2;
}

.project-pg-project-content p {
  color: var(--dark-gray);
  font-size: 1rem;
  line-height: 1.6;
}

.project-pg-project-stats {
  display: flex;
  gap: 2rem;
  margin: 1.1rem 0 0.7rem 0;
  flex-wrap: wrap;
}

.project-pg-stat {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.project-pg-stat-value {
  font-weight: 700;
  color: var(--sage-green);
  font-size: 1.13rem;
  margin-bottom: 2px;
}

.project-pg-stat-label {
  color: var(--dark-gray);
  font-size: 0.98rem;
}

.project-pg-project-location {
  display: flex;
  align-items: center;
  gap: 0.45em;
  color: var(--ocean-blue);
  font-size: 0.97rem;
  margin-top: 0.7rem;
}

.project-pg-project-location i {
  font-size: 1.02em;
}

/* PROJECT GRID */
.project-pg-projects-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(285px, 1fr));
  gap: 2rem;
  animation: fadeInUp 1.2s;
}

.project-pg-project-card {
  background: #fff;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-width: 240px;
  position: relative;
  transition: transform 0.21s, box-shadow 0.17s;
  opacity: 1;
  animation: fadeInUp 1s;
}

.project-pg-project-card.hide {
  pointer-events: none;
  opacity: 0;
  transform: scale(0.96) translateY(30px);
  transition: all 0.33s cubic-bezier(0.4, 0, 0.2, 1);
}

.project-pg-project-image img {
  width: 100%;
  height: 250px;
  object-fit: cover;
  display: block;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  transition: transform 0.28s;
}

.project-pg-project-card:hover .project-pg-project-image img {
  transform: scale(1.04);
}

.project-pg-project-content {
  padding: 1.07rem 1rem 1rem 1rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.project-pg-project-content h3 {
  font-size: 1.1rem;
  color: var(--charcoal);
  font-weight: 600;
  margin: 0.4rem 0 0.55rem 0;
}

.project-pg-project-content p {
  color: var(--dark-gray);
  font-size: 0.96rem;
  margin-bottom: 0.7rem;
  text-align: justify;
}

.project-pg-project-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.93rem;
  margin-bottom: 0.3rem;
}

.project-pg-project-type {
  color: var(--sage-green);
  font-weight: 600;
  letter-spacing: 0.01em;
}

.project-pg-project-status {
  color: var(--ocean-blue);
  font-weight: 500;
}

.project-pg-project-location {
  display: flex;
  align-items: center;
  gap: 0.35em;
  color: var(--ocean-blue);
  font-size: 0.95rem;
}

.project-pg-project-location i {
  font-size: 1.01em;
}

/* IMPACT METRICS */
.project-pg-impact-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  justify-content: center;
  margin-top: 2.5rem;
  margin-bottom: 1.5rem;
  animation: fadeInUp 1.1s;
}

.project-pg-metric-card {
  flex: 1 1 200px;
  min-width: 170px;
  max-width: 260px;
  background: linear-gradient(130deg, var(--mint-fresh), var(--soft-yellow));
  color: var(--charcoal);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
  padding: 2rem 1.1rem 1.2rem 1.1rem;
  text-align: center;
  transition: transform 0.2s, box-shadow 0.17s;
  animation: fadeInUp 1.1s;
}

.project-pg-metric-card:hover {
  transform: scale(1.06) translateY(-5px);
  box-shadow: 0 18px 32px 0 rgba(76, 110, 81, 0.14);
}

.project-pg-metric-icon {
  font-size: 2.25rem;
  color: var(--sage-green);
  margin-bottom: 1rem;
  filter: drop-shadow(0 2px 8px rgba(44, 62, 80, 0.12));
}

.project-pg-metric-value {
  font-size: 2.05rem;
  font-weight: 700;
  color: var(--sage-green);
}

.project-pg-metric-label {
  color: var(--charcoal);
  font-size: 1.1rem;
  margin-top: 0.6rem;
}

/* ANIMATIONS */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(36px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-30px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

/* RESPONSIVE STYLES */
@media (max-width: 1050px) {
  .project-pg-featured-projects {
    flex-direction: column;
    gap: 2.4rem;
    align-items: center;
  }

  .project-pg-featured-project-card {
    min-width: 250px;
    max-width: 98vw;
    width: 98vw;
  }
}

@media (max-width: 900px) {
  .project-pg-projects-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.3rem;
  }

  .project-pg-impact-metrics {
    gap: 1rem;
  }
}

@media (max-width: 700px) {

  .project-pg-section,
  .project-pg-section.bg-light {
    padding: 2rem 0 1.3rem 0;
  }

  .project-pg-all-section-title,
  .project-pg-section-title {
    font-size: 1.4rem;
  }

  .project-pg-featured-project-card,
  .project-pg-metric-card {
    min-width: 80vw;
  }

  .project-pg-featured-projects {
    gap: 1rem;
  }
  .project-pg-project-content p {
  color: var(--dark-gray);
  font-size: 0.96rem;
  margin-bottom: 0.7rem;
  text-align: justify;
}
}

@media (max-width: 540px) {
  .project-pg-container {
    padding: 0 0.3rem;
  }

  .project-pg-all-section-title,
  .project-pg-section-title {
    font-size: 1.1rem;
  }

  .project-pg-project-categories {
    margin-bottom: 0.7rem;
  }

  .project-pg-featured-project-card,
  .project-pg-metric-card {
    min-width: unset;
    max-width: 100vw;
    padding: 1.1rem 0.4rem 1.1rem 0.4rem;
  }

  .project-pg-projects-grid {
    gap: 0.8rem;
  }
}






/*======================================================
ELECTROLYSER PAGE STYLES
====================================================== */
/* --- Electrolyser Hero Section Styles --- */
.electrolyser-hero {
  min-height: 94vh;
  width: 100vw;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-primary);
  overflow: hidden;
  background: var(--gradient-primary, linear-gradient(135deg, #007946 20%, #4A90A4 80%));
}

.electrolyser-hero-bg {
  position: absolute;
  inset: 0;
  background: url('https://images.unsplash.com/photo-1517976487492-5750f3195933?w=1200&q=80&auto=format') center center/cover no-repeat;
  filter: brightness(0.72) contrast(1.13) saturate(1.18) blur(0.8px);
  z-index: 1;
  opacity: 0.70;
  animation: fadeBg 1.5s cubic-bezier(.5, 1.13, .3, .97) both;
}

@keyframes fadeBg {
  from {
    opacity: 0;
  }

  to {
    opacity: .7;
  }
}

.electrolyser-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(0, 121, 70, 0.45) 65%, rgba(74, 144, 164, 0.56) 100%);
  z-index: 2;
  pointer-events: none;
}

.electrolyser-hero-content {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 1240px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding: 2.5rem 2.5rem 2.5rem 2.5rem;
  min-height: 70vh;
  margin: 0 auto;
  gap: 2.5rem;
}

.electrolyser-hero-main {
  flex: 1 1 60%;
  max-width: 730px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.6rem;
}

.electrolyser-hero-badge {
  display: inline-block;
  background: var(--mint-fresh, #B8E6B8);
  color: var(--sage-green, #007946);
  font-weight: 700;
  font-size: 1rem;
  padding: 0.42rem 1.15rem 0.35rem 1.15rem;
  border-radius: 2rem;
  letter-spacing: 0.04em;
  box-shadow: var(--shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));
  margin-bottom: 0.55rem;
  opacity: 0.96;
}

.electrolyser-hero-title {
  font-size: 2.8rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: 0.01em;
  line-height: 1.17;
  margin: 0 0 0.6rem 0;
}

.electrolyser-highlight {
  color: var(--soft-yellow, #F6F3B5);
  background: var(--gradient-soft, linear-gradient(95deg, #B8E6B8 55%, #F6F3B5 100%));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 900;
  letter-spacing: 0.03em;
  padding-right: 0.2em;
}

.electrolyser-highlight-light {
  color: var(--ocean-blue, #4A90A4);
  font-size: 1.07rem;
  font-weight: 600;
  margin-top: 0.12rem;
  display: inline-block;
}

.electrolyser-hero-desc {
  font-size: 1.23rem;
  color: #FDFBF7;
  line-height: 1.63;
  font-weight: 500;
  margin-bottom: 1.1rem;
  max-width: 540px;
}

.electrolyser-hero-cta {
  display: flex;
  gap: 1.3rem;
  margin-top: 0.4rem;
}

.electrolyser-btn-primary {
  background: var(--sage-green, #007946);
  color: #fff;
  padding: 0.78rem 2.1rem;
  font-weight: 700;
  font-size: 1.1rem;
  border: none;
  border-radius: var(--radius-xl, 1rem);
  box-shadow: var(--shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1));
  cursor: pointer;
  transition: background 0.21s, transform 0.13s;
  display: flex;
  align-items: center;
  gap: .6em;
}

.electrolyser-btn-primary:hover {
  background: #009960;
  transform: translateY(-3px) scale(1.03);
}

.electrolyser-btn-outline {
  background: transparent;
  color: #fff;
  border: 2px solid #fff;
  font-weight: 700;
  font-size: 1.05rem;
  padding: 0.76rem 1.7rem;
  border-radius: var(--radius-lg, 0.75rem);
  transition: border-color 0.23s, color 0.23s, background 0.18s;
  display: flex;
  align-items: center;
  gap: .55em;
}

.electrolyser-btn-outline:hover {
  background: #fff;
  color: var(--sage-green, #007946);
  border-color: #007946;
}

.electrolyser-btn-icon {
  font-size: 1.14em;
}

.electrolyser-hero-card {
  background: rgba(253, 251, 247, 0.98);
  box-shadow: var(--shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1));
  border-radius: var(--radius-2xl, 1.5rem);
  padding: 2.1rem 2rem 1.7rem 2rem;
  min-width: 295px;
  max-width: 350px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.1rem;
  position: relative;
  animation: ggtCardPop .7s cubic-bezier(.55, 1.5, .3, .97) .26s both;
}

@keyframes ggtCardPop {
  from {
    opacity: 0;
    transform: scale(.91) translateY(38px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.electrolyser-hero-card-icon img {
  width: 66px;
  height: 66px;
  object-fit: contain;
  background: var(--mint-fresh, #B8E6B8);
  border-radius: 50%;
  border: 4px solid #e2e8f0;
  box-shadow: 0 4px 18px 0 rgba(74, 144, 164, 0.11);
  margin-bottom: .65rem;
  display: block;
}

.electrolyser-hero-card-title {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--sage-green, #007946);
  margin-bottom: .25em;
}

.electrolyser-hero-card-label {
  font-size: 1.07rem;
  font-weight: 600;
  color: var(--charcoal, #2C3E50);
  margin-bottom: .5rem;
  text-align: center;
}

.electrolyser-hero-card-list {
  font-size: 1.01rem;
  color: var(--dark-gray, #4A5568);
  margin: 0;
  padding: 0 0 0 1.1rem;
  list-style: disc;
  opacity: .91;
}

.electrolyser-hero-card-list li {
  margin-bottom: .32em;
  line-height: 1.33;
}

.electrolyser-hero-card-list li:last-child {
  margin-bottom: 0;
}

/* ---- Entrance Animations ---- */
.animate-fade-in {
  opacity: 0;
  animation: fadeIn .85s .18s both;
}

.animate-fade-in-delayed {
  opacity: 0;
  animation: fadeIn .92s .36s both;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.animate-slide-up {
  opacity: 0;
  transform: translateY(40px);
  animation: slideUp .8s .28s both;
}

.animate-slide-up-delayed {
  opacity: 0;
  transform: translateY(35px);
  animation: slideUp .9s .49s both;
}

@keyframes slideUp {
  to {
    opacity: 1;
    transform: none;
  }
}

.animate-pop-in {
  opacity: 0;
  animation: ggtCardPop .7s .6s both;
}

/* ---------- Responsive Styles ---------- */
@media (max-width: 1080px) {
  .electrolyser-hero-content {
    max-width: 980px;
    padding: 2rem 1.4rem 2rem 1.4rem;
    gap: 2rem;
  }

  .electrolyser-hero-card {
    min-width: 260px;
    padding: 1.4rem 1.3rem 1.2rem 1.3rem;
  }

  .electrolyser-hero-main {
    max-width: 520px;
  }

  .electrolyser-hero-title {
    font-size: 2.1rem;
  }
}

@media (max-width: 900px) {
  .electrolyser-hero-content {
    flex-direction: column;
    align-items: flex-start;
    gap: 2.1rem;
    min-height: unset;
  }

  .electrolyser-hero-main {
    max-width: 100%;
  }

  .electrolyser-hero-card {
    margin: 0 auto;
    min-width: 230px;
    max-width: 340px;
    margin-bottom: 2rem;
  }
}

@media (max-width: 600px) {
  .electrolyser-hero {
    min-height: 78vh;
  }

  .electrolyser-hero-content {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    padding: 1.1rem 0.7rem 1.7rem 0.7rem;
    min-height: unset;
    gap: 1.4rem;
  }

  .electrolyser-hero-main {
    gap: 1.1rem;
    max-width: 100%;
  }

  .electrolyser-hero-title {
    font-size: 1.38rem;
  }

  .electrolyser-hero-desc {
    font-size: 1.01rem;
  }

  .electrolyser-hero-cta {
    flex-direction: column;
    gap: 0.75rem;
    width: 100%;
  }

  .electrolyser-btn-primary,
  .electrolyser-btn-outline {
    width: 100%;
    justify-content: center;
    padding: 0.78rem 1rem;
    font-size: 1rem;
  }

  .electrolyser-hero-card {
    min-width: 90%;
    max-width: 97vw;
    padding: 1.1rem 0.7rem 1.1rem 0.7rem;
  }
}


/* ==============================
   OUR PRODUCT TABS SECTION
   ============================== */
.our-product-tabs-section {
  background: #FDFBF7;
  border-radius: 2.2rem;
  box-shadow: 0 8px 32px 0 rgba(74, 144, 164, 0.07);
  padding: 0rem 1.2rem 3rem 1.2rem;
  margin: 5em auto;
  max-width: 1100px;
  overflow: visible;
  
}

.our-product-tabs-header {
  text-align: center;
  margin-bottom: 2rem;
}

.our-product-tabs-title {
  font-size: 2.2rem;
  font-weight: 800;
  color:var(--sage-green);
  margin-bottom: 0.8rem;
  letter-spacing: 0.01em;
  text-align: center;
  margin-top: 2em;
  
}

.our-product-tabs-nav {
  display: flex;
  gap: 1.2rem;
  justify-content: center;
  flex-wrap: wrap;
  margin: 0 auto;
  margin-top: 1rem;
}

.our-product-tab-btn {
  font-family:  var(--font-primary);
  font-weight: 700;
  font-size: 1.05rem;
  color: #4A90A4;
  background: #fff;
  border: none;
  border-radius: 1.5rem 1.5rem 0 0;
  padding: 0.8rem 2rem;
  margin-bottom: -2px;
  box-shadow: 0 3px 10px 0 rgba(74, 144, 164, 0.04);
  cursor: pointer;
  outline: none;
  transition: background .2s, color .2s, box-shadow .2s;
  position: relative;
  z-index: 2;
  opacity: 0.87;
  display: flex;
  align-items: center;
  gap: 0.7em;
}

.our-product-tab-btn.active,
.our-product-tab-btn:focus,
.our-product-tab-btn:hover {
  background: linear-gradient(95deg, #B8E6B8 60%, #F6F3B5 100%);
  color: #007946;
  opacity: 1;
  box-shadow: 0 5px 18px 0 rgba(0, 121, 70, 0.13);
}

.our-product-tab-btn i {
  font-size: 1.18em;
}

/* TABS BODY & PANELS */
.our-product-tabs-body {
  position: relative;
  min-height: 340px;
  border-radius: 1.8rem;
  background: #fff;
  box-shadow: 0 2px 16px 0 rgba(74, 144, 164, 0.05);
  padding: 1.7rem 1.2rem 1.7rem 1.2rem;
  margin-top: 0.7rem;
}

.our-product-tab-panel {
  display: none;
  opacity: 0;
  animation: none;
  pointer-events: none;
}

.our-product-tab-panel.active {
  display: block;
  animation: our-product-fade-in 0.6s cubic-bezier(.44, 1.34, .42, .93) both;
  opacity: 1;
  pointer-events: auto;
}

@keyframes our-product-fade-in {
  from {
    opacity: 0;
    transform: translateY(36px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}


.our-product-tab-img-wrap {
  min-width: 220px;
  max-width: 340px;
  width: 28vw;
  aspect-ratio: 1.2/1;
  background: #E2E8F0;
  border-radius: 1.2rem;
  overflow: hidden;
  box-shadow: 0 8px 32px 0 rgba(74, 144, 164, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
}

.our-product-tab-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 1.2rem;
  transition: transform .3s cubic-bezier(.44, 1.34, .42, .93);
}

.our-product-tab-panel.active .our-product-tab-img-wrap img {
  transform: scale(1.035) rotate(-1.2deg);
}



.our-product-tab-link {
  display: inline-block;
  background: #4A90A4;
  color: #fff;
  border-radius: 1.1rem;
  padding: 0.6em 1.5em;
  font-weight: 700;
  font-size: 1.07rem;
  text-decoration: none;
  box-shadow: 0 2px 8px 0 rgba(0, 121, 70, 0.08);
  transition: background .18s, color .18s, transform .13s;
}

.our-product-tab-link:hover {
  background: #007946;
  color: #fff;
  transform: translateY(-2px) scale(1.05);
}

.our-product-tab-link span {
  font-size: 1.13em;
  margin-left: 0.28em;
}


/* TABLET */
@media (max-width: 900px) {
  .our-product-tabs-section {
    max-width: 98vw;
    padding: 1.2rem 0.2rem 2rem 0.2rem;
  }

  .our-product-tabs-title {
    font-size: 1.38rem;
  }

  .our-product-tabs-body {
    padding: 1.1rem 0.5rem;
  }


  .our-product-tab-img-wrap {
    min-width: 130px;
    max-width: 170px;
    width: 40vw;
  }


  .our-product-tab-link {
    font-size: 1rem;
  }
}

/* MOBILE */
@media (max-width: 600px) {
  .our-product-tabs-header {
    margin-bottom: 0.8rem;
  }

  .our-product-tabs-title {
    font-size: 1.54rem;
  }

  .our-product-tabs-nav {
    flex-wrap: wrap;
    gap: 0.25rem;
    justify-content: stretch;
  }

  .our-product-tab-btn {
    font-size: 0.95rem;
    padding: 0.59rem 0.7rem;
    border-radius: 1.1rem 1.1rem 0 0;
  }

  .our-product-tabs-body {
    min-height: 190px;
    padding: 0.6rem 0.02rem 1rem 0.02rem;
    border-radius: 1rem;
  }


  .our-product-tab-img-wrap {
    min-width: 98px;
    max-width: 96vw;
    width: 95vw;
    margin: 0 auto;
    aspect-ratio: 1.1/1;
  }

}

.ggt-electrolyser-section {
  background: linear-gradient(120deg, #F5F7FA 0%, #E2E8F0 100%);
  padding: 3rem 0 2rem 0;
  font-family:  var(--font-primary);
}

.ggt-container {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* HERO ROW */
.ggt-electrolyser-hero {
  display: flex;
  align-items: center;
  gap: 2.5rem;
  margin-bottom: 2.5rem;
  animation: fade-in 1s cubic-bezier(.6, .1, .5, 1);
}

.ggt-electrolyser-title {
  font-size: 2.3rem;
  font-weight: 700;
  color: #007946;
  line-height: 1.2;
  margin-bottom: 0.75rem;
}

.ggt-electrolyser-title span {
  display: block;
  font-size: 1rem;
  color: #4A90A4;
  font-weight: 500;
  letter-spacing: 1px;
  margin-top: 6px;
}

.ggt-electrolyser-desc {
  font-size: 1rem;
  color: #2C3E50;
  margin-bottom: 1.2rem;
  line-height: 1.7;
  text-align: justify;
}

.ggt-electrolyser-img img {

  width: 100%;
  border-radius: 1rem;
  box-shadow: 0 8px 32px rgba(0, 121, 70, 0.09);
  object-fit: cover;
  background: #fff;
}

/* BENEFITS TABLE */
.ggt-electrolyser-benefits,
.ggt-electrolyser-comparison {
  margin: 2.5rem 0 1.5rem 0;
}

.ggt-electrolyser-heading {
  color: #007946;
  font-size: 1.35rem;
  font-weight: 700;
  margin-bottom: 1.1rem;
  text-align: center;
  letter-spacing: .5px;
}

.ggt-electrolyser-table-wrap {
  background: #fff;
  border-radius: 1.25rem;
  overflow-x: auto;
  box-shadow: 0 2px 14px #e2e8f0;
}

.ggt-electrolyser-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 340px;
  font-size: 1rem;
}

.ggt-electrolyser-table th,
.ggt-electrolyser-table td {
  padding: 1rem .8rem;
  text-align: left;
  border-bottom: 1px solid #E2E8F0;
}

.ggt-electrolyser-table th {
  background: #007946;
  color: #fff;
  font-weight: 700;
  font-size: 1.13rem;
  letter-spacing: .04em;
}

.ggt-electrolyser-table tbody tr:last-child td {
  border-bottom: none;
}

.ggt-electrolyser-table td {
  color: #2C3E50;
}

/* PFAS FREE FEATURE */
.ggt-electrolyser-feature {
  display: flex;
  align-items: center;
  gap: 2rem;
  margin: 2.7rem 0 2.5rem 0;
}

.ggt-electrolyser-feature-text h3 {
  font-size: 1.3rem;
  color: #007946;
  font-weight: 700;
  margin-bottom: .7rem;
}

.ggt-electrolyser-feature-text p {
  font-size: 1rem;
  color: #2C3E50;
  line-height: 1.7;
  text-align: justify;
}

.ggt-electrolyser-feature-img img {
  max-width: 340px;
  width: 100%;
  border-radius: 1.1rem;
  box-shadow: 0 8px 32px rgba(0, 121, 70, 0.08);
  background: #F5F7FA;
}

/* REGULATORY */
.ggt-electrolyser-regulation {
  margin: 2.5rem 0 1.2rem 0;
  padding: 1.7rem 1.4rem;
  background: #f3f6f9;
  border-radius: 1.2rem;
  box-shadow: 0 2px 14px #e2e8f0;
}

.ggt-electrolyser-reg-content p {
  color: #2C3E50;
  font-size: 1.08rem;
  margin: 0;
  line-height: 1.7;
  text-align: center;
}

/* ENTRANCE ANIMATION */
[data-animate="fade-in"] {
  opacity: 0;
  transform: translateY(32px);
  animation: fade-in 1.1s .12s cubic-bezier(.6, .1, .5, 1) forwards;
}

[data-animate="fade-right"] {
  opacity: 0;
  transform: translateX(-36px);
  animation: fade-right 1.1s .17s cubic-bezier(.6, .1, .5, 1) forwards;
}

[data-animate="fade-up"] {
  opacity: 0;
  transform: translateY(36px);
  animation: fade-up 1.2s .14s cubic-bezier(.6, .1, .5, 1) forwards;
}

@keyframes fade-in {
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes fade-right {
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes fade-up {
  to {
    opacity: 1;
    transform: none;
  }
}

/* --- RESPONSIVE --- */
/* TABLET */
@media (max-width: 991px) {

  .ggt-electrolyser-hero,
  .ggt-electrolyser-feature {
    flex-direction: column;
    gap: 1.3rem;
    align-items: flex-start;
    text-align: left;
  }

  .ggt-electrolyser-img img,
  .ggt-electrolyser-feature-img img {
    max-width: 98vw;
    margin: 0 auto;
  }

  .ggt-electrolyser-title {
    font-size: 1.7rem;
  }

  .ggt-electrolyser-heading {
    font-size: 1.09rem;
  }
}

@media (max-width: 600px) {
  .ggt-electrolyser-section {
    padding: 2rem 0 1rem 0;
  }

  .ggt-electrolyser-hero,
  .ggt-electrolyser-feature {
    gap: 0.7rem;
    margin-bottom: 1.2rem;
    margin-top: .3rem;
  }

  .ggt-electrolyser-title {
    font-size: 1.18rem;
    line-height: 1.32;
  }

  .ggt-electrolyser-table th,
  .ggt-electrolyser-table td {
    padding: .67rem .4rem;
    font-size: .99rem;
  }

  .ggt-electrolyser-regulation {
    padding: 1.2rem .5rem;
    font-size: .98rem;
  }
}

.ggt-electrolyser-features-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.2rem 2rem;
  margin: 3rem 0 1.5rem 0;
  padding: 0 0.5rem;
}

.ggt-electrolyser-feature-card {
  background: #fff;
  border-radius: 1.2rem;
  box-shadow: 0 4px 20px 0 rgba(44, 62, 80, 0.08);
  padding: 2.1rem 1.3rem 1.5rem 1.3rem;
  display: flex;
  align-items: flex-start;
  gap: 1.3rem;
  min-height: 150px;
  position: relative;
  overflow: hidden;
  transition: transform 0.22s cubic-bezier(.4, 0, .2, 1), box-shadow 0.22s cubic-bezier(.4, 0, .2, 1);
  cursor: pointer;
  border: 1.5px solid #e2e8f0;
}

.ggt-electrolyser-feature-card:hover,
.ggt-electrolyser-feature-card:focus {
  transform: translateY(-6px) scale(1.035);
  box-shadow: 0 8px 32px 0 rgba(76, 145, 164, 0.14), 0 1.5px 8px 0 rgba(0, 121, 70, 0.04);
  border-color: #4A90A4;
}

.ggt-electrolyser-feature-icon {
  font-size: 2.3rem;
  color: #007946;
  flex-shrink: 0;
  margin-top: 0.2rem;
  filter: drop-shadow(0 2px 6px rgba(76, 145, 164, 0.09));
  transition: color 0.18s;
}

.ggt-electrolyser-feature-card:hover .ggt-electrolyser-feature-icon {
  color: #4A90A4;
}

.ggt-electrolyser-feature-title {
  font-family:  var(--font-primary);
  font-size: 1.13rem;
  font-weight: 600;
  color: #2C3E50;
  margin-bottom: 0.22rem;
  margin-top: 0.1rem;
  letter-spacing: 0.01em;
  transition: color 0.18s;
}

.ggt-electrolyser-feature-desc {
  font-family:  var(--font-primary);
  color: #4A5568;
  font-size: 1rem;
  line-height: 1.5;
  margin: 0;
  opacity: 0.93;
}

@media (max-width: 1024px) {
  .ggt-electrolyser-features-grid {
    grid-template-columns: 1fr 1fr;
    gap: 1.4rem 1.2rem;
    margin: 2.3rem 0 1rem 0;
  }

  .ggt-electrolyser-feature-card {
    min-height: 120px;
    padding: 1.5rem 1rem;
  }

  .ggt-electrolyser-feature-title {
    font-size: 1.06rem;
  }
}

@media (max-width: 768px) {
  .ggt-electrolyser-features-grid {
    grid-template-columns: 1fr;
    gap: 1.1rem 0;
    margin: 1.2rem 0 0.7rem 0;
  }

  .ggt-electrolyser-feature-card {
    padding: 1.25rem 0.8rem 1rem 0.8rem;
    min-height: 90px;
  }

  .ggt-electrolyser-feature-title {
    font-size: 0.99rem;
  }

  .ggt-electrolyser-feature-icon {
    font-size: 1.6rem;
  }
}



/*======================================================
SERVICES PAGE STYLES
====================================================== */

.service-image2 img{
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 2em;
  
}

.ggt-service-tabs-section {
  padding: 0rem 0 2rem 0;
  background: #f5f7fa;
}

.ggt-service-tabs-wrap {
  display: flex;
  gap: 2.5rem;
  align-items: flex-start;
}

/* Sidebar Buttons: Default (Desktop/Tablet) */
.ggt-service-tabs-sidebar {
  flex: 1 1 250px;
  max-width: 290px;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  background: #fff;
  border-radius: 1rem;
  box-shadow: 0 4px 18px rgba(74, 144, 164, 0.08);
  padding: 2rem 1rem;
  min-width: 180px;
  position: sticky;
  top: 100px;
}

.ggt-service-tab-btn {
  display: block;
  background: #f5f7fa;
  color: #007946;
  border: none;
  border-radius: 0.7rem;
  font-family:  var(--font-primary);
  font-size: 1.07rem;
  font-weight: 500;
  padding: 0.9rem 1.1rem;
  margin-bottom: 0.25rem;
  text-align: left;
  transition:
    background 0.18s,
    color 0.18s,
    box-shadow 0.16s;
  cursor: pointer;
  outline: none;
  box-shadow: 0 1px 4px rgba(74, 144, 164, 0.04);
  min-width: 140px;
}

.ggt-service-tab-btn.active,
.ggt-service-tab-btn:focus,
.ggt-service-tab-btn:hover {
  background: linear-gradient(90deg, #007946 65%, #4A90A4 100%);
  color: #fff;
  box-shadow: 0 2px 12px rgba(0, 121, 70, 0.14);
  font-weight: 600;
}

.ggt-service-tabs-content {
  flex: 2 1 0%;
  background: #fff;
  border-radius: 1.2rem;
  box-shadow: 0 4px 18px rgba(74, 144, 164, 0.09);
  min-width: 0;
  padding: 2.5rem 2rem;
  animation: tabPanelFadeIn 0.45s cubic-bezier(.4, 0, .2, 1);
  min-height: 230px;
}

.ggt-service-tab-panel {
  display: none;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.33s cubic-bezier(.4, 0, .2, 1), transform 0.33s cubic-bezier(.4, 0, .2, 1);
  animation: tabPanelFadeIn 0.6s;
}

.ggt-service-tab-panel.active {
  display: block;
  opacity: 1;
  transform: translateY(0);
}

@keyframes tabPanelFadeIn {
  from {
    opacity: 0;
    transform: translateY(24px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ================= TABLET ================= */
@media (max-width: 950px) {
  .ggt-service-tabs-wrap {
    flex-direction: column;
    gap: 1.5rem;
  }

  .ggt-service-tabs-sidebar {
    flex-direction: column;
    max-width: 100%;
    min-width: 0;
    padding: 1.3rem 0.5rem;
    gap: 1rem;
    margin-bottom: 0;
    border-radius: 0.9rem;
    box-shadow: 0 4px 16px rgba(74, 144, 164, 0.07);
  }

  .ggt-service-tabs-content {
    padding: 1.7rem 1.1rem;
    border-radius: 1rem;
  }
}

/* =============== MOBILE =============== */
@media (max-width: 640px) {
  .ggt-service-tabs-section {
    padding: 1.1rem 0 0.8rem 0;
  }

  .ggt-service-tabs-wrap {
    gap: 0.5rem;
  }

  .ggt-service-tabs-sidebar {
    flex-direction: column;
    padding: 0.6rem 0.2rem 0.6rem 0.2rem;
    gap: 0.85rem;
    box-shadow: none;
    background: transparent;
    border-radius: 0.6rem;
  }

  .ggt-service-tab-btn {
    /* Full width, card-like, spaced apart vertically */
    width: 100%;
    min-width: unset;
    font-size: 1.01rem;
    border-radius: 0.9rem;
    padding: 1.1rem 1rem;
    margin-right: 0;
    margin-bottom: 0;
    margin-top: 0;
    text-align: left;
    background: #fff;
    color: #007946;
    box-shadow: 0 2px 10px rgba(74, 144, 164, 0.06);
    border: 1.5px solid #e2e8f0;
    font-weight: 500;
    letter-spacing: 0.01em;
    transition:
      box-shadow 0.17s,
      border 0.16s,
      background 0.16s,
      color 0.16s;
    position: relative;
  }

  .ggt-service-tab-btn+.ggt-service-tab-btn {
    margin-top: 0.7rem;
  }

  .ggt-service-tab-btn.active,
  .ggt-service-tab-btn:focus,
  .ggt-service-tab-btn:hover {
    background: linear-gradient(90deg, #007946 60%, #4A90A4 100%);
    color: #fff;
    border: 1.5px solid #007946;
    font-weight: 600;
    box-shadow: 0 2px 18px rgba(0, 121, 70, 0.15);
  }

  .ggt-service-tabs-content {
    padding: 1.2rem 0.2rem;
    border-radius: 0.8rem;
    font-size: 1.01rem;
  }
}

.ggt-service1-main {
  width: 100%;
  padding: 0;
}

.ggt-service1-content {
  max-width: 900px;
  margin: 0 auto;
  background: #fff;
  border-radius: 1.25rem;
  box-shadow: 0 4px 24px rgba(74, 144, 164, 0.09);
  padding: 2.4rem 2.5rem 1.5rem 2.5rem;
}

.ggt-service1-title {
  color: #007946;
  font-family:  var(--font-primary);
  font-size: 2.1rem;
  font-weight: 700;
  margin-bottom: 1rem;
  line-height: 1.17;
}

.ggt-service1-desc {
  font-size: 1rem;
  color: #2c3e50;
  margin-bottom: 2rem;
  line-height: 1.6;
  text-align: justify;
}

.ggt-service1-grid {
  display: flex;
  gap: 2.3rem;
  margin-bottom: 1.6rem;
  flex-wrap: wrap;
}

.ggt-service1-block {
  flex: 1 1 280px;
  min-width: 250px;
}

.ggt-service1-subtitle {
  font-size: 1.13rem;
  color: #4A90A4;
  font-weight: 600;
  margin-bottom: 0.6rem;
  letter-spacing: 0.01em;
}

.ggt-service1-list {
  list-style: disc inside;
  color: #2c3e50;
  font-size: 1.02rem;
  padding-left: 1.2em;
}

.ggt-service1-list li {
  margin-bottom: 0.65em;
  line-height: 1.55;
}

.ggt-service1-list li strong {
  color: #007946;
  font-weight: 600;
}

.ggt-service1-usecases {
  margin-top: 1.4rem;
  padding-top: 1.2rem;
  border-top: 1px solid #e2e8f0;
}

.ggt-service1-usecases ul {
  margin: 0;
  padding-left: 1.2em;
  font-size: 1.01rem;
}

.ggt-service1-usecases li {
  margin-bottom: 0.55em;
  color: #2c3e50;
  line-height: 1.5;
}

/* Tablet Responsive */
@media (max-width: 900px) {
  .ggt-service1-content {
    padding: 1.5rem 1rem 1rem 1rem;
  }

  .ggt-service1-title {
    font-size: 1.6rem;
  }

  .ggt-service1-grid {
    gap: 1.2rem;
  }

  .ggt-service1-block {
    min-width: 180px;
  }
}

/* Mobile Responsive */
@media (max-width: 600px) {
  .ggt-service1-content {
    padding: 1rem 0.5rem 0.6rem 0.5rem;
    border-radius: 0.9rem;
    box-shadow: 0 2px 8px rgba(74, 144, 164, 0.08);
  }

  .ggt-service1-title {
    font-size: 1.22rem;
  }

  .ggt-service1-desc {
    font-size: 0.97rem;
    margin-bottom: 1.1rem;
  }

  .ggt-service1-grid {
    flex-direction: column;
    gap: 0.9rem;
    margin-bottom: 1rem;
  }

  .ggt-service1-block {
    min-width: 0;
  }

  .ggt-service1-subtitle {
    font-size: 1rem;
  }

  .ggt-service1-usecases {
    padding-top: 0.7rem;
  }

  .ggt-service1-usecases ul {
    font-size: 0.97rem;
  }
}



/*======================================================
CONTACT PAGE STYLES
====================================================== */
.contact-page-hero-section {
  position: relative;
  min-height: 350px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gradient-primary);
  overflow: hidden;
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-xl);
  margin: var(--space-xl) var(--space-sm) 0 var(--space-sm);
  animation: fadeInDown 1s;
}

.parallax-bg::before {
  content: '';
  position: absolute;
  top: -40px;
  left: -60px;
  width: 140%;
  height: 100%;
  background: var(--gradient-soft);
  opacity: 0.15;
  z-index: 0;
  transform: rotate(-5deg);
}

.contact-page-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.01));
  z-index: 1;
  border-radius: var(--radius-2xl);
}

.contact-page-hero-content {
  position: relative;
  z-index: 2;
  text-align: center;
  color: var(--cream-white);
}

.contact-page-hero-title {
  font-size: 2.7rem;
  font-weight: 700;
  margin: 0 0 var(--space-xs) 0;
  letter-spacing: -1.2px;
  color: var(--soft-yellow);
  text-shadow: 1px 3px 12px rgba(44, 62, 80, 0.15);
}

.contact-page-hero-subtitle {
  font-size: 1.2rem;
  max-width: 540px;
  margin: 0 auto;
  color: var(--cream-white);
  font-weight: 400;
}

/* Section */
.contact-page-section {
  padding: 0 50px 50px 50px;
  background: var(--cream-white);
}

.contact-page-section.bg-light {
  background: var(--light-gray);
}

.contact-page-container {
  max-width: 1100px;
  margin: 0 auto;
}

.contact-page-section-header {
  margin-bottom: var(--space-xl);
}

.contact-page-section-title {
  font-size: 2.1rem;
  font-weight: 700;
  color: var(--sage-green);
  margin-bottom: var(--space-xs);
  letter-spacing: -0.5px;
  text-shadow: 0 3px 18px rgba(44, 62, 80, 0.08);
}

.contact-page-section-subtitle {
  color: var(--ocean-blue);
  font-size: 1.1rem;
}

/* Contact Info Cards */
.contact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--space-lg);
  margin-bottom: var(--space-2xl);
}

.contact-card {
  background: rgba(255, 255, 255, 0.85);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  padding: var(--space-lg);
  text-align: center;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
  position: relative;
  overflow: hidden;
  animation: fadeInUp 0.9s;
}

.contact-card:hover {
  transform: translateY(-8px) scale(1.03);
  box-shadow: var(--shadow-lg);
  background: var(--gradient-soft);
}

.contact-icon {
  font-size: 2.4rem;
  margin-bottom: var(--space-xs);
  color: var(--sage-green);
  background: var(--mint-fresh);
  width: 3.4rem;
  height: 3.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  margin: 0 auto var(--space-xs) auto;
  box-shadow: var(--shadow-sm);
  transition: background 0.3s;
}

.contact-card:hover .contact-icon {
  background: var(--sage-green);
  color: var(--soft-yellow);
}

.contact-card h3 {
  font-size: 1.1rem;
  color: var(--sage-green);
  margin: 0 0 var(--space-xs) 0;
}

.contact-card p {
  font-size: 1rem;
  color: var(--charcoal);
  margin: 0;
}

/* Contact Form + Image Side-by-Side */
.contact-form-container {
  display: flex;
  gap: var(--space-2xl);
  background: rgba(255, 255, 255, 0.9);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  align-items: stretch;
  margin-bottom: var(--space-xl);
  animation: fadeInRight 1.1s;
}

.contact-page-form-content {
  flex: 2;
  padding: var(--space-xl);
  min-width: 320px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.contact-page-form-image {
  flex: 1.3;
  min-width: 200px;
  background: var(--gradient-primary);
  display: flex;
  align-items: center;
  justify-content: center;
}

.contact-page-form-image img {
  width: 100%;
  height: 100%;
  object-fit: fill;
  border-left: 8px solid var(--mint-fresh);
  border-radius: 0 var(--radius-xl) var(--radius-xl) 0;
  min-height: 350px;
  max-height: 480px;
  box-shadow: var(--shadow-md);
}

/* Contact Form */
.contact-form h2 {
  color: var(--sage-green);
  font-weight: 600;
  font-size: 1.3rem;
  margin-bottom: var(--space-xs);
}

.contact-form p {
  color: var(--dark-gray);
  font-size: 1rem;
  margin-bottom: var(--space-md);
}

.contact-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.contact-page-form-row {
  display: flex;
  gap: var(--space-md);
}

.contact-page-form-group {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

label {
  font-size: 1rem;
  font-weight: 500;
  color: var(--charcoal);
  margin-bottom: 0.2rem;
  letter-spacing: 0.01em;
}

input,
select,
textarea {
  padding: 0.75rem 1rem;
  border: 1.3px solid var(--medium-gray);
  border-radius: var(--radius-md);
  font-family: var(--font-secondary);
  font-size: 1rem;
  background: var(--cream-white);
  color: var(--charcoal);
  outline: none;
  transition: border-color 0.2s;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--sage-green);
}

textarea {
  resize: vertical;
  min-height: 100px;
  font-size: 1rem;
}

.contact-page-btn-primary {
  background: var(--gradient-primary);
  color: var(--cream-white);
  border: none;
  border-radius: var(--radius-lg);
  font-size: 1.07rem;
  padding: 0.85rem 2.5rem;
  font-weight: 700;
  cursor: pointer;
  transition: box-shadow 0.2s, transform 0.2s, background 0.2s;
  box-shadow: var(--shadow-md);
  margin-top: var(--space-sm);
  letter-spacing: 0.01em;
}

.contact-page-btn-primary:hover {
  background: var(--sage-green);
  color: var(--soft-yellow);
  transform: translateY(-2px) scale(1.03);
  box-shadow: var(--shadow-lg);
}

/* Map Section */
.map-container {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 240px;
  margin-top: var(--space-lg);
  width: 100%;
}

.map-embed-responsive {
  position: relative;
  width: 100%;
  padding-bottom: 50%;
  /* aspect ratio 2:1 (tweak for mobile below) */
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  background: var(--cream-white);
  max-width: 700px;
  margin: 0 auto;
  animation: fadeInUp 1.2s;
}

.map-embed-responsive iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: var(--radius-xl);
  min-height: 240px;
}

/* Animations */
@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-30px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translateX(30px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.fade-in-up {
  animation: fadeInUp 1s;
}

/* Responsive Styles */
@media (max-width: 991px) {
  .contact-form-container {
    flex-direction: column;
  }

  .contact-page-form-image {
    border-radius: 0 0 var(--radius-xl) var(--radius-xl);
    display: none;
  }

  .contact-page-form-image img {
    border-radius: 0 0 var(--radius-xl) var(--radius-xl);
    border-left: none;
    border-top: 6px solid var(--mint-fresh);
    min-height: 180px;
    max-height: 240px;
  }
}

@media (max-width: 730px) {
  .contact-page-hero-section {
    min-height: 200px;
    margin-top: var(--space-mobile-top);
    padding: 20px;
    margin-left: 0;
    margin-right: 0;
    border-radius: var(--radius-lg);
  }

  .contact-page-form-row {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
  }

  .contact-page-container {
    padding: 0 var(--space-xs);
  }

  .contact-page-section {
    padding: var(--space-lg) var(--space-xs);
  }

  .contact-page-section-title {
    font-size: 1.3rem;
  }

  .contact-form-container {
    gap: var(--space-sm);
  }

  .contact-page-form-content {
    padding: var(--space-lg) var(--space-sm);
  }

  .map-embed-responsive {
    padding-bottom: 75%;
    /* aspect ratio 4:3 for mobile */
  }
}

@media (max-width: 520px) {
  .contact-grid {
    grid-template-columns: 1fr;
  }

  .contact-page-hero-title {
    font-size: 2rem;
  }

  .contact-page-form-row {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
  }

  .contact-page-hero-section {
    min-height: 110px;
  }

  .contact-page-form-content,
  .contact-page-form-image {
    min-width: unset;
  }

  .map-embed-responsive {
    padding-bottom: 90%;
  }
}


/* ======================================================
FOOTER STYLES
====================================================== */

.footer-dark {
  background: linear-gradient(135deg, #073d2c 0%, #11613b 65%, #1b8b65 100%);
  color: #f6f3b5;
  padding: 0px 20px;
  margin-top: 3rem;
  font-family:  var(--font-primary);
  border-radius: 1.5rem 1.5rem 0 0;
  box-shadow: 0 8px 24px 0 rgba(22, 44, 33, 0.16);
}

.footer-dark-container {
  max-width: 1250px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.footer-dark-content {
  display: flex;
  flex-wrap: wrap;
  gap: 2.5rem;
  justify-content: space-between;
  align-items: flex-start;
  padding: 3rem 0 2rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
}

.footer-dark-section {
  flex: 1 1 170px;
  min-width: 170px;
  margin-bottom: 2rem;
}

.footer-dark-section h4 {
  color: #f6f3b5;
  font-size: 1.1rem;
  margin-bottom: 1.1rem;
  letter-spacing: 0.03em;
  font-weight: 600;
}

.footer-dark-section a {
  display: block;
  color: rgba(255, 255, 255, 0.93);
  font-size: 1rem;
  margin-bottom: 0.7rem;
  text-decoration: none;
  transition: color 0.22s;
  font-family:  var(--font-primary);
  word-break: break-word;
}

.footer-dark-section a:hover,
.footer-dark-section a:focus {
  color: #b8e6b8;
}

.footer-dark-logo-row {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  margin-bottom: 1rem;
}

.footer-dark-logo {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  box-shadow: 0 2px 8px 0 rgba(22, 44, 33, 0.18);
  background: #fdfbf7;
  object-fit: cover;
}

.footer-dark-logo-text {
  font-size: 1.18rem;
  font-weight: 600;
  letter-spacing: -0.4px;
  color: #fff;
}

.footer-dark-desc {
  color: rgba(255, 255, 255, 0.84);
  font-size: 1rem;
  line-height: 1.7;
}

.footer-dark-socials {
  margin-bottom: 1rem;
}

.footer-dark-socials a {
  display: inline-block;
  margin-right: 0.9rem;
  color: #f6f3b5;
  font-size: 1.22rem;
  transition: color 0.22s, transform 0.22s;
}

.footer-dark-socials a:hover {
  color: #b8e6b8;
  transform: scale(1.11) rotate(-7deg);
}

.footer-dark-contacts {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.footer-dark-contact-link {
  display: flex;
  align-items: flex-start;
  margin-bottom: 0.8rem;
  color: rgba(255, 255, 255, 0.89);
  font-size: 1rem;
  gap: 0.7em;
  transition: color 0.22s;
  line-height: 1.5;
  word-break: break-word;
}

.footer-dark-contact-link i {
  margin-top: 0.12em;
  min-width: 1.2em;
}

.footer-dark-contact-link span {
  display: inine-block;
  vertical-align: top;
  padding-left: 10px
}

.footer-dark-contact-link:hover {
  color: #f6f3b5;
}

.footer-dark-connect {
  min-width: 270px;
  flex: 2 1 310px;
  max-width: 380px;
}

.footer-dark-bottom {
  text-align: center;
  padding: 1.2rem 0 1rem 0;
  color: rgba(255, 255, 255, 0.956);
  font-size: 1rem;
  background: rgba(0, 0, 0, 0.11);
  border-radius: 1.5rem;
}

.footer-dark-bottom p {
  color: #fdfbf7;
}


.footer-dark-bottom a {
  color: #b8e6b8;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s;
}

.footer-dark-bottom a:hover {
  color: #f6f3b5;
}

/* Responsive styles */
@media (max-width: 1080px) {
  .footer-dark-content {
    gap: 1.3rem;
    padding: 2rem 0 1.2rem 0;
  }

  .footer-dark-section {
    min-width: 140px;
  }

  .footer-dark-connect {
    min-width: 210px;
    max-width: 100%;
  }
}

@media (max-width: 870px) {
  .footer-dark-content {
    flex-wrap: wrap;
    flex-direction: column;
    gap: 1.7rem;
    align-items: flex-start;
    padding: 2rem 0 1.3rem 0;
  }

  .footer-dark-section {
    margin-bottom: 0.7rem;
    max-width: 100%;
  }

  .footer-dark-connect {
    min-width: unset;
    flex: 1 1 100%;
    max-width: 100%;
  }
}

@media (max-width: 520px) {
  .footer-dark-container {
    padding: 0 0.4rem;
  }

  .footer-dark-content {
    padding: 1.3rem 0 0.7rem 0;
  }

  .footer-dark-section {
    font-size: 0.97rem;
  }

  .footer-dark-logo {
    width: 33px;
    height: 33px;
  }

  .footer-dark-logo-text {
    font-size: 1rem;
  }

  .footer-dark-bottom {
    font-size: 0.95rem;
  }
}

/* ======================================================
STICKY CONTACT STYLES
====================================================== */

.sticky-contact-container {
  position: fixed;
  bottom: 28px;
  left: 28px;
  z-index: 1050;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.sticky-contact-btn {
  background: linear-gradient(135deg, var(--sage-green), var(--ocean-blue));
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 62px;
  height: 62px;
  box-shadow: 0 8px 24px rgba(74, 144, 164, 0.14);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.1rem;
  cursor: pointer;
  transition: transform 0.22s, box-shadow 0.22s;
  outline: none;
  animation: sticky-contact-pop-in 0.65s cubic-bezier(.23, 1.04, .53, .98);
}

.sticky-contact-btn:hover,
.sticky-contact-btn:focus {
  transform: scale(1.13) rotate(-8deg);
  box-shadow: 0 12px 36px rgba(0, 121, 70, 0.18), 0 2px 8px #b8e6b8;
}

@keyframes sticky-contact-pop-in {
  0% {
    opacity: 0;
    transform: scale(0.7) translateY(60px);
  }

  70% {
    opacity: 1;
    transform: scale(1.05) translateY(-7px);
  }

  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

/* Popup Styles */
.sticky-contact-popup {
  position: absolute;
  left: 0;
  bottom: 80px;
  background: rgba(253, 251, 247, 0.98);
  border-radius: 1.2rem;
  box-shadow: 0 12px 44px rgba(0, 121, 70, 0.15), 0 2px 14px #e2e8f0;
  padding: 1.25rem 1.3rem 1rem 1.3rem;
  min-width: 230px;
  min-height: 30px;
  opacity: 0;
  pointer-events: none;
  transform: translateY(32px) scale(0.92);
  transition: all 0.33s cubic-bezier(.53, .05, .42, .92);
  border: 1px solid var(--medium-gray, #E2E8F0);
  backdrop-filter: blur(7px);
}

.sticky-contact-popup.sticky-contact-popup-active {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1);
  animation: sticky-contact-popup-in 0.35s cubic-bezier(.5, 1.7, .48, .78);
}

@keyframes sticky-contact-popup-in {
  0% {
    opacity: 0;
    transform: translateY(70px) scale(0.7);
  }

  65% {
    opacity: 1;
    transform: translateY(-8px) scale(1.05);
  }

  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.sticky-contact-popup-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .7rem;
  font-weight: 600;
  color: var(--sage-green, #007946);
  font-size: 1.04rem;
  letter-spacing: 0.02em;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--medium-gray, #E2E8F0);
}

.sticky-contact-popup-close {
  background: none;
  border: none;
  color: var(--charcoal, #2C3E50);
  font-size: 1.2rem;
  cursor: pointer;
  border-radius: 50%;
  padding: 2px 7px;
  transition: background 0.19s;
}

.sticky-contact-popup-close:hover {
  background: #F5F7FA;
}

.sticky-contact-popup-options {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  margin-top: 0.7rem;
}

.sticky-contact-popup-link {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0.75rem 0.6rem 0.75rem 0.5rem;
  border-radius: .8rem;
  font-size: 1.04rem;
  font-weight: 500;
  color: var(--charcoal, #2C3E50);
  text-decoration: none;
  background: transparent;
  border: 1px solid transparent;
  box-shadow: 0 1px 4px #b8e6b820;
  transition: background 0.17s, border-color 0.18s, color 0.13s, transform 0.18s;
}

.sticky-contact-popup-link i {
  font-size: 1.28em;
  min-width: 1.5em;
}

.sticky-contact-popup-link.email:hover {
  background: #b8e6b8;
  color: #007946;
  border-color: #b8e6b8;
  transform: translateX(6px) scale(1.03);
}

.sticky-contact-popup-link.whatsapp:hover {
  background: #d1fae5;
  color: #25D366;
  border-color: #d1fae5;
  transform: translateX(6px) scale(1.03);
}

.sticky-contact-popup-link.linkedin:hover {
  background: #e8f5fe;
  color: #0A66C2;
  border-color: #e8f5fe;
  transform: translateX(6px) scale(1.03);
}

.sticky-contact-popup-link.phone:hover {
  background: #f6f3b5;
  color: #007946;
  border-color: #f6f3b5;
  transform: translateX(6px) scale(1.03);
}

.sticky-contact-popup-link.location:hover {
  background: #ffd8cf;
  color: #ff7043;
  border-color: #ffd8cf;
  transform: translateX(6px) scale(1.03);
}

.sticky-contact-popup-link span {
  font-size: 1em;
  display: inline-block;
  letter-spacing: 0.01em;
  transition: color 0.14s;
}

@media (max-width: 640px) {
  .sticky-contact-container {
    bottom: 18px;
    left: 10px;
  }

  .sticky-contact-btn {
    width: 52px;
    height: 52px;
    font-size: 1.35rem;
  }

  .sticky-contact-popup {
    min-width: 165px;
    padding: 1.1rem 0.5rem 0.7rem 0.7rem;
    left: 0;
    bottom: 60px;
    border-radius: 1.1rem;
  }

  .sticky-contact-popup-header {
    font-size: 0.96rem;
  }

  .sticky-contact-popup-link {
    font-size: 0.97rem;
  }
}

@media (max-width: 400px) {
  .sticky-contact-popup {
    left: 0;
    bottom: 50px;
    min-width: 125px;
    padding-left: 0.2rem;
    padding-right: 0.2rem;
  }
}


/* ======================================================
BACK TO TOP STYLES
====================================================== */
.sticky-top-btn {
  position: fixed;
  bottom: 32px;
  right: 32px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: none;
  background: linear-gradient(135deg, var(--ocean-blue), var(--sage-green));
  color: #fff;
  box-shadow: 0 8px 22px rgba(74, 144, 164, 0.16), 0 2px 10px #b8e6b8;
  font-size: 1.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 1050;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.28s, transform 0.23s, box-shadow 0.21s;
  animation: sticky-top-in 0.65s cubic-bezier(.23, 1.04, .53, .98);
}

@keyframes sticky-top-in {
  0% {
    opacity: 0;
    transform: scale(0.7) translateY(60px);
  }

  80% {
    opacity: 1;
    transform: scale(1.08) translateY(-8px);
  }

  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.sticky-top-btn.sticky-top-visible {
  opacity: 1;
  pointer-events: auto;
}

.sticky-top-btn:hover,
.sticky-top-btn:focus {
  background: linear-gradient(135deg, var(--sage-green), var(--ocean-blue));
  color: #fff;
  transform: scale(1.13) rotate(8deg);
  box-shadow: 0 12px 38px rgba(0, 121, 70, 0.19), 0 2px 10px #b8e6b8;
  outline: none;
}

@media (max-width: 640px) {
  .sticky-top-btn {
    width: 44px;
    height: 44px;
    font-size: 1.15rem;
    bottom: 18px;
    right: 13px;
  }
}






