  body {
      margin: 0;
      font-family: 'Poppins', sans-serif;
      /* background-color: #f7f9fc; */
      color: #333;
      line-height: 1.7;
  }

  /* Added for demonstration: spacing to allow scrolling */
  .spacer {
      height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      background-color: #e9ecef;
  }

  .spacer p {
      font-size: 2rem;
      color: #6c757d;
  }

  /* End of spacer */

  .plastic-section {
      padding: 80px 40px;
      /* background-color: #ffffff; */
      overflow: hidden;
      /* Important to contain animations */
  }

  .plastic-section .container {
      max-width: 1100px;
      margin: auto;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 60px;
  }

  .text-content {
      flex: 1 1 450px;
  }

  /* Elements to be animated will start hidden */
  .text-content h2,
  .text-content p,
  .cta-button,
  .image-content {
      opacity: 0;
      /* Start invisible */
      /* transition for graceful fallback if JS fails or for smoother direct visibility change */
      transition: opacity 0.5s ease-out, transform 0.5s ease-out;
  }

  .text-content h2 {
      font-size: 2.5rem;
      color: #195a34;
      font-weight: 600;
      margin-bottom: 20px;
      position: relative;
      padding-bottom: 15px;
      transform: translateY(40px);
      /* Initial offset for animation */
  }

  .text-content h2.is-visible {
      /* State when animation triggers */
      opacity: 1;
      transform: translateY(0);
      animation: fadeInUpHeading 0.8s 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
  }

  .text-content h2::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 0;
      /* Will be animated by JS or a delayed CSS animation */
      height: 4px;
      background-image: linear-gradient(to right, #08bb44, #153422);
      border-radius: 2px;
  }

  .text-content h2.is-visible::after {
      /* Animate underline when heading is visible */
      animation: drawLine 0.7s 0.8s ease-out forwards;
      /* Delay matches heading + a bit */
  }


  .text-content p {
      font-size: 1.05rem;
      color: #555e68;
      margin-bottom: 25px;
      transform: translateY(40px);
      /* Initial offset */
  }

  .text-content p.is-visible {
      opacity: 1;
      transform: translateY(0);
      animation: fadeInUpParagraph 0.8s 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
  }

  .image-content {
      flex: 1 1 500px;
      transform: translateY(50px) scale(0.95);
      /* Initial offset */
  }

  .image-content.is-visible {
      opacity: 1;
      transform: translateY(0) scale(1);
      animation: revealImage 1s 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
  }

  .image-content img {
      width: 100%;
      border-radius: 12px;
      box-shadow: 0 15px 35px rgba(42, 89, 110, 0.15);
      transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.4s ease, filter 0.3s ease;
      display: block;
      filter: saturate(1.05) contrast(1.02);
      height: 500px;
      margin-top: 20px;
      /* Subtle enhancement */
  }

  .image-content img:hover {
      transform: scale(1.04) translateY(-5px);
      box-shadow: 0 20px 45px rgba(42, 89, 110, 0.2);
      filter: saturate(1.15) contrast(1.05);
      /* Slightly more vibrant on hover */
  }

  .cta-button {
      display: inline-block;
      background-image: linear-gradient(to right, #08bb44, #153422);
      color: white;
      padding: 12px 30px;
      text-decoration: none;
      border-radius: 50px;
      font-weight: 500;
      font-size: 1rem;
      transition: transform 0.3s ease, box-shadow 0.3s ease;
      box-shadow: 0 4px 15px rgba(0, 147, 201, 0.3);
      margin-top: 15px;
      transform: translateY(30px);
      /* Initial offset */
  }

  .cta-button.is-visible {
      opacity: 1;
      transform: translateY(0);
      animation: fadeInUpCTA 0.8s 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
  }

  .cta-button:hover {
      transform: translateY(-3px);
      box-shadow: 0 6px 20px rgba(0, 147, 201, 0.4);
  }

  /* Keyframe Animations */
  @keyframes fadeInUpHeading {
      from {
          opacity: 0;
          transform: translateY(40px);
      }

      /* Explicit from states */
      to {
          opacity: 1;
          transform: translateY(0);
      }
  }

  @keyframes fadeInUpParagraph {
      from {
          opacity: 0;
          transform: translateY(40px);
      }

      to {
          opacity: 1;
          transform: translateY(0);
      }
  }

  @keyframes fadeInUpCTA {
      from {
          opacity: 0;
          transform: translateY(30px);
      }

      to {
          opacity: 1;
          transform: translateY(0);
      }
  }

  @keyframes drawLine {
      to {
          width: 70px;
      }
  }

  @keyframes revealImage {
      from {
          opacity: 0;
          transform: translateY(50px) scale(0.95);
      }

      to {
          opacity: 1;
          transform: translateY(0) scale(1);
      }
  }

  /* Responsive */
  @media (max-width: 992px) {
      .plastic-section .container {
          flex-direction: column;
          text-align: center;
          gap: 40px;
      }

      .text-content,
      .image-content {
          flex-basis: 100%;
      }

      .text-content h2::after {
          left: 50%;
          transform: translateX(-50%);
      }
  }

  .facility-list {
      background-color: #f9fdfb;
      padding: 25px;
      border-radius: 12px;
      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
      border-left: 4px solid #195a34;
      margin-top: 30px;
  }

  .facility-list h3 {
      margin-bottom: 20px;
      font-size: 1.3rem;
      color: #195a34;
  }

  .facility-box {
      margin-bottom: 20px;
      line-height: 1.8;
      font-size: 0.97rem;
  }

  .facility-box a {
      color: #08bb44;
      font-weight: 500;
      text-decoration: none;
  }

  .facility-box a:hover {
      text-decoration: underline;
  }

  @media (max-width: 768px) {
      .plastic-section {
          padding: 60px 20px;
      }

      .text-content h2 {
          font-size: 2rem;
      }

      .text-content p {
          font-size: 0.95rem;
      }
  }