:root {
  --primary-color: #002639;
  --primary-light: #34495e;
  --primary-dark: #0c1723;
  --secondary-color: #aaaaaa;
  --secondary-dark: #666;
  --accent-color: #c6a36b;

  --border-radius: 12px;
}

@font-face {
  font-family: "robotobold";
  src: url("../assets/fonts/roboto_bold_macroman/Roboto-Bold-webfont.eot");
  src:
    url("../assets/fonts/roboto_bold_macroman/Roboto-Bold-webfont.eot?#iefix") format("embedded-opentype"),
    url("../assets/fonts/roboto_bold_macroman/Roboto-Bold-webfont.woff") format("woff"),
    url("../assets/fonts/roboto_bold_macroman/Roboto-Bold-webfont.ttf") format("truetype"),
    url("../assets/fonts/roboto_bold_macroman/Roboto-Bold-webfont.svg#robotobold") format("svg");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: "robotolight";
  src: url("../assets/fonts/roboto_light_macroman/Roboto-Light-webfont.eot");
  src:
    url("../assets/fonts/roboto_light_macroman/Roboto-Light-webfont.eot?#iefix") format("embedded-opentype"),
    url("../assets/fonts/roboto_light_macroman/Roboto-Light-webfont.woff") format("woff"),
    url("../assets/fonts/roboto_light_macroman/Roboto-Light-webfont.ttf") format("truetype"),
    url("../assets/fonts/roboto_light_macroman/Roboto-Light-webfont.svg#robotolight") format("svg");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: "robotoregular";
  src: url("../assets/fonts/roboto_regular_macroman/Roboto-Regular-webfont.eot");
  src:
    url("../assets/fonts/roboto_regular_macroman/Roboto-Regular-webfont.eot?#iefix") format("embedded-opentype"),
    url("../assets/fonts/roboto_regular_macroman/Roboto-Regular-webfont.woff") format("woff"),
    url("../assets/fonts/roboto_regular_macroman/Roboto-Regular-webfont.ttf") format("truetype"),
    url("../assets/fonts/roboto_regular_macroman/Roboto-Regular-webfont.svg#robotoregular") format("svg");
  font-weight: normal;
  font-style: normal;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "robotoregular", sans-serif;
}

html {
  container: body-wrapper / inline-size;
  scroll-behavior: smooth;
}

body {
  font-family:
    "Inter",
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Roboto,
    sans-serif;
  line-height: 1.6;
  color: #2c3e50;
  background: #ffffff;
}

header {
  position: fixed;
  top: 0;
  width: 100%;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  z-index: 1000;
  box-shadow:
    rgba(0, 0, 0, 0.01) 0px 3px 6px,
    rgba(0, 0, 0, 0.05) 0px 3px 6px;

  & .menu-toggle {
    display: none;
  }

  & .nav-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 1rem 2rem;
    position: relative;

    & .mobile-menu-toggle {
      display: block;
      z-index: 1001;
      font-size: 1.9rem !important;
      cursor: pointer;

      @container body-wrapper (width > 48.75em) {
        display: none;
      }
    }

    & .logo img {
      width: 50%;
    }
  }
}

.nav-links {
  display: flex;
  list-style: none;
  gap: 2rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  max-width: 1200px;

  @container body-wrapper (width < 48.75em) {
    padding: 1rem 2rem;
    align-items: center;
    margin: 0 auto;
    max-width: 100%;

    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: white;
    border-top: 1px solid #ccc;
    display: none;
    flex-direction: column;
    padding: 1rem 2rem;
  }

  /* Reset */
  & ul,
  & li {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  &>ul {
    display: flex;
    gap: 2rem;
    align-items: center;

    @container body-wrapper (width < 48.75em) {
      flex-direction: column;
      gap: 1rem;
    }
  }

  & a {
    text-decoration: none;
    font-size: 1.25rem;
    color: #34495e;
    font-weight: 500;
    padding: 0.5rem 0;
    display: inline-block;

    &:hover {
      color: var(--accent-color);
    }
  }

  /* Submenu styles */
  & .has-sub {
    position: relative;
  }

  & .has-sub>ul {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: white;
    border: 1px solid rgba(0, 0, 0, 0.1);
    min-width: 220px;
    z-index: 999;

    @container body-wrapper (width < 48.75em) {
      position: static;
      border: none;
      display: block;
      margin-left: 1rem;
    }
  }

  & .has-sub>ul li {
    position: relative;
  }

  & .has-sub>ul a {
    padding: 0.75rem 1rem;
    display: block;
    white-space: nowrap;
  }

  /* Show submenu on hover (desktop only) */
  & .has-sub:hover>ul {
    display: block;

    @container body-wrapper (width < 48.75em) {
      display: none;
    }
  }

  /* Nested submenu positioning */
  & .has-sub>ul .has-sub>ul {
    left: 100%;
    top: 0;
  }
}

ul {
  padding-left: 1.6rem;
}

section {
  scroll-margin-top: 10vh;

  & h2 {
    &::after {
      content: "";
      display: block;
      width: 2rem;
      height: 3px;
      background-color: var(--accent-color);
      margin: 0 auto;
      margin-bottom: 1.8rem;
    }
  }

  &.hero {
    background-image:
      linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
      url("../assets/img/background-banner.jpg") !important;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    padding: 120px 2rem 80px;
    text-align: center;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    position: relative;
    overflow: hidden;
    color: white;

    & h1 {
      font-size: 3.5rem;
      font-weight: 700;
      color: #ffffff;
      margin-bottom: 1.5rem;
      line-height: 1.2;
      text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
      position: relative;
      z-index: 2;

      @container body-wrapper (width < 48.75em) {
        font-size: 2.5rem;
      }
    }

    & p {
      font-size: 1.25rem;
      color: rgba(255, 255, 255, 0.9);
      margin-bottom: 2rem;
      max-width: 600px;
      margin-left: auto;
      margin-right: auto;
      text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
      position: relative;
      z-index: 2;

      @container body-wrapper (width < 48.75em) {
        font-size: 1.1rem;
      }
    }

    & span {
      display: flex;
      flex-direction: row;
      gap: 1rem;
      justify-content: center;

      & a {
        color: #fff !important;
      }
    }

    & .hero-bg-animation {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      overflow: hidden;
      pointer-events: none;

      & .floating-shape {
        position: absolute;
        background: rgba(52, 73, 94, 0.1);
        border-radius: 50%;
        animation: float 3s ease-in-out infinite;
        border: 1px solid rgb(0, 65, 97);
      }

      & .floating-shape:nth-child(1) {
        width: 80px;
        height: 80px;
        top: 20%;
        left: 10%;
        animation-delay: 0s;
      }

      & .floating-shape:nth-child(2) {
        width: 60px;
        height: 60px;
        top: 60%;
        right: 20%;
        animation-delay: 2s;
      }

      & .floating-shape:nth-child(3) {
        width: 40px;
        height: 40px;
        bottom: 30%;
        left: 70%;
        animation-delay: 4s;
      }

      & .floating-shape:nth-child(4) {
        width: 100px;
        height: 100px;
        top: 40%;
        right: 10%;
        animation-delay: 1s;
      }

      & .floating-shape:nth-child(5) {
        width: 100px;
        height: 100px;
        top: 40%;
        right: 10%;
        animation-delay: 1s;
      }

      & .floating-shape:nth-child(6) {
        width: 30px;
        height: 30px;
        top: 50%;
        left: 15%;
        animation-delay: 1s;
      }
    }

    & .hero-content {
      max-width: 56rem;
      animation: fadeInUp 1s ease-out;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      z-index: 999;

      & p {
        font-size: 1.25rem;
      }

      & .cta-buttons {
        display: flex;
        gap: 1rem;
        justify-content: center;
        flex-wrap: wrap;
        margin-top: 2rem;
      }
    }
  }

  &.hero-sub {
    background-image:
      linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
      url("../assets/img/background-banner.jpg") !important;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    padding: 10rem 2rem 5rem;
    text-align: center;
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    position: relative;
    overflow: hidden;
    color: white;

    & .hero-content {
      max-width: 56rem;
      animation: fadeInUp 1s ease-out;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      z-index: 999;

      & .cta-buttons {
        display: flex;
        gap: 1rem;
        justify-content: center;
        flex-wrap: wrap;
        margin-top: 2rem;
      }
    }

    & h1 {
      font-size: 3.5rem;
    }

    & p {
      font-size: 1.25rem;
    }
  }

  &.content-dark {
    background-color: var(--primary-color);
    display: flex;
    flex-direction: column;
    flex-direction: column;
    align-items: center;
    scroll-margin-top: 10vh;
    
    background-image: url(../assets/img/network-graphic-gold.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-attachment: fixed;

    & .accent-line {
      width: 2rem;
      height: 3px;
      margin-top: -1.8rem;
      margin-bottom: 1.8rem;
      background-color: var(--accent-color);
    }

    & .section-title {
      text-align: center;
      font-size: 2.5rem;
      font-weight: 700;
      color: #fff;
      margin: 2rem 0 2rem 0;
    }

    & .section-content {
      max-width: 1100px;
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: center;
      gap: 2rem;
      padding: 2rem 0 5rem 0;
      color: #fff;

      @container body-wrapper (width < 48.75em) {
        flex-direction: column;
      }

      & .text-container {
        width: 50%;
        font-size: 1.25rem;

        @container body-wrapper (width < 48.75em) {
          width: 85%;
        }
      }

      & .image-container {
        width: 50%;
        display: flex;
        justify-content: center;
        align-items: center;

        @container body-wrapper (width < 48.75em) {
          width: 85%;
        }

        & img {
          width: 100%;
          border-radius: 8px;
          box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
          background: #fff;
        }
      }
    }
  }

  &.stats {
    background: var(--primary-color);
    color: white;
    padding: 80px 2rem;
    text-align: center;

    & .stats-grid {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 2rem;
      max-width: 75rem;
      margin: 0 auto;

      @container body-wrapper (width < 48.75em) {
        display: flex;
        flex-direction: column;
      }

      & .stat-item {
        padding: 1rem;

        & .stat-number {
          font-size: 3rem;
          font-weight: 700;
          color: #d4af37;
          margin-bottom: 0.5rem;
          display: block;
        }

        & .stat-label {
          font-size: 1rem;
          color: #bdc3c7;
          text-transform: uppercase;
          letter-spacing: 0.5px;
        }
      }
    }
  }

  &.content-light {
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    background-image: url(../assets/img/network-graphic01.png);
    background-size: cover;
    scroll-margin-top: 10vh;

    & .accent-line {
      width: 2rem;
      height: 3px;
      margin-top: -1.8rem;
      margin-bottom: 1.8rem;
      background-color: var(--accent-color);
    }

    & .section-title {
      text-align: center;
      font-size: 2.5rem;
      font-weight: 700;
      color: var(--primary-color);
      margin: 2rem 0 2rem 0;
    }

    & .section-content {
      max-width: 1100px;
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: center;
      gap: 2rem;
      padding: 2rem 0 5rem 0;

      @container body-wrapper (width < 48.75em) {
        flex-direction: column;
      }

      & .text-container {
        width: 50%;
        font-size: 1.25rem;

        @container body-wrapper (width < 48.75em) {
          width: 85%;
        }
      }

      & .image-container {
        width: 50%;
        display: flex;
        justify-content: center;
        align-items: center;

        @container body-wrapper (width < 48.75em) {
          width: 85%;
        }

        & img {
          width: 100%;
          border-radius: 8px;
          box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
          background: #fff;
        }
      }
    }
  }

  & .section-line {
    width: 100%;
    height: 1px;
    background-color: rgba(218, 218, 218, 0.5);
    margin-bottom: 3rem;
    margin-top: -3rem;
  }

  & .accent-line-container {
    width: 100%;
    display: flex;
    justify-content: center;
    margin-top: -1.8rem;
    margin-bottom: 1.8rem;

    & .accent-line {
      width: 2rem;
      height: 3px;
      background-color: var(--accent-color);
    }
  }

  &.companies {
    margin: 40px 0 0px 0;

    & .carousel-title {
      text-align: center;
      font-size: 2.5rem;
      font-weight: 700;
      color: #2c3e50;
      margin-bottom: 3rem;

      @container body-wrapper (width < 48.75em) {
        padding: 0px 1rem;
        font-size: 2rem;
        margin-bottom: 20px;
      }
    }

    & .carousel-wrapper {
      position: relative;
      overflow: hidden;
      border-radius: 15px;
      width: 100%;
      height: 200px;

      @container body-wrapper (width < 48.75em) {
        height: 180px;
      }

      & .carousel-track {
        display: flex;
        flex-wrap: nowrap;
        flex-direction: row;
        align-items: center;
        height: 100%;
        animation: slide 20s infinite linear;
        width: calc(320px * 20);

        @container body-wrapper (width < 48.75em) {
          animation: slide-mobile 20s infinite linear;
          width: calc(270px * 20);
        }

        & .company-card {
          min-width: 300px;
          height: 200px;
          background: white;
          margin-right: 20px;
          border-radius: 15px;
          display: flex;
          flex-direction: column;
          align-items: center;
          justify-content: center;
          flex-shrink: 0;
          position: relative;
          overflow: hidden;
          cursor: pointer;

          @container body-wrapper (width < 48.75em) {
            min-width: 250px;
            height: 180px;
          }

          & .company-logo {
            height: 80px;
            width: auto;
            max-width: 220px;
            object-fit: contain;
            margin-bottom: 0;
          }
        }
      }
    }
  }

  &.cards-container {
    background: linear-gradient(to bottom,
        var(--primary-dark),
        var(--primary-color));

    & .cards-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 2rem;
      max-width: 1400px;
      margin: 0 auto;
      padding: 80px 2rem;
      background-image: url(../assets/img/network-graphic01.png);
      background-size: cover;

      @container body-wrapper (width < 48.75em) {
        display: flex;
        flex-direction: column;
        padding: 34px 2rem;
      }

      & .location-card {
        background: none;
        border-radius: 20px;
        padding: 2.5rem;
        text-align: center;
        backdrop-filter: blur(10px);
        border: 1px solid rgba(255, 255, 255, 0.2);
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);

        & .card-header {
          margin-bottom: 2rem;

          & .city-name {
            font-size: 1.8rem;
            font-weight: 600;
            color: #fff;
            margin-bottom: 1rem;
            letter-spacing: -0.5px;
          }

          & .flag {
            & img {
              width: 4rem;
            }
          }
        }

        & .address-section {
          margin-bottom: 1.5rem;

          & .address-line {
            font-size: 1.25rem;
            color: #fff;
            margin-bottom: 0.3rem;
            line-height: 1.4;
          }

          & .website {
            color: #fff;
            font-weight: 500;
            font-size: 1.25rem;

            &:hover {
              color: var(--accent-color);
              text-decoration: underline;
            }
          }
        }

        & .contact-section {
          margin: 1.5rem 0;

          & .phone {
            color: #fff;
            font-weight: 500;
            font-size: 1.25rem;

            &:hover {
              color: var(--accent-color);
              text-decoration: underline;
            }
          }
        }
      }
    }

    & .click-links-container {
      display: flex;
      justify-content: center;
      align-items: center;
      width: 100%;

      @container body-wrapper (width < 48.75em) {
        justify-content: center;
        padding: 0 2rem 2rem 2rem;
      }

      & .click-links {
        display: flex;
        flex-direction: row;
        justify-content: center;
        gap: 2rem;
        background: none;
        border-radius: 20px;
        padding: 2.5rem;
        backdrop-filter: blur(10px);
        border: 1px solid rgba(255, 255, 255, 0.2);
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
        width: 1338px;

        @container body-wrapper (width < 48.75em) {
          width: 100%;
          flex-direction: column;
          align-items: center;
        }

        & a {
          color: #fff;
          font-size: 1.25rem;
        }
      }
    }
  }

  &.intro {
    padding: 80px 2rem;
    max-width: 75rem;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;

    & p {
      max-width: 60rem;
    }
  }

  &.services {
    padding: 80px 2rem;
    max-width: 1200px;
    margin: 0 auto;
    background-image: url(../assets/img/network-graphic01.png);
    background-size: cover;

    & .services-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
      gap: 2rem;
      margin-bottom: 2rem;

      @container body-wrapper (width < 48.75em) {
        grid-template-columns: 1fr;
      }

      & .service-card {
        background: white;
        padding: 2rem;
        width: 100%;
        border-radius: 12px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
        transition:
          transform 0.3s ease,
          box-shadow 0.3s ease;
        border: 1px solid rgba(52, 73, 94, 0.1);
        text-decoration: none;
        width: 23rem;
        flex-direction: column;
        display: flex;
        justify-content: center;
        align-items: center;
        text-align: center;

        @container body-wrapper (width < 48.75em) {
          width: 100%;
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
          text-align: center;
        }

        & p {
          color: var(--primary-color);
          line-height: 1.6;
        }

        & h3 {
          font-size: 1.5rem;
          font-weight: 600;
          color: #2c3e50;
          margin-bottom: 1rem;
        }

        &:hover {
          transform: translateY(-5px);
          box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);
          cursor: pointer;
        }

        & .service-icon {
          width: 60px;
          height: 60px;
          background: var(--primary-color);
          border-radius: 50%;
          display: flex;
          align-items: center;
          justify-content: center;
          margin-bottom: 1rem;
          font-size: 1.5rem;
          color: white;
          box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);

          & .product-image {
            width: 6rem;
            height: 6rem;
            border-radius: 50%;
          }
        }
      }
    }

    & .bottom-service-card {
      display: flex;
      flex-direction: row;
      gap: 2rem;
      justify-content: center;

      @container body-wrapper (width < 48.75em) {
        flex-direction: column;
      }

      & .service-card {
        background: white;
        padding: 2rem;
        border-radius: 12px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
        transition:
          transform 0.3s ease,
          box-shadow 0.3s ease;
        border: 1px solid rgba(52, 73, 94, 0.1);
        text-decoration: none;
        width: 23rem;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-align: center;

        @container body-wrapper (width < 48.75em) {
          width: 100%;
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
          text-align: center;
        }

        & p {
          color: var(--primary-color);
          line-height: 1.6;
        }

        & h3 {
          font-size: 1.5rem;
          font-weight: 600;
          color: #2c3e50;
          margin-bottom: 1rem;
        }

        &:hover {
          transform: translateY(-5px);
          box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);
          cursor: pointer;
        }

        & .service-icon {
          width: 60px;
          height: 60px;
          background: var(--primary-color);
          border-radius: 50%;
          display: flex;
          align-items: center;
          justify-content: center;
          margin-bottom: 1rem;
          font-size: 1.5rem;
          color: white;
          box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);

          & .product-image {
            width: 6rem;
            height: 6rem;
            border-radius: 50%;
          }
        }
      }
    }

    & .section-title {
      text-align: center;
      font-size: 2.5rem;
      font-weight: 700;
      color: #2c3e50;
      margin-bottom: 3rem;
      position: relative;
    }
  }

  &.features {
    background:
      url(../assets/img/network-graphic01-flipped.png),
      linear-gradient(135deg, #002639, #002f47);
    background-size: cover;
    color: white;
    padding: 80px 2rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;

    & .feature-title {
      color: #fff;
      text-align: center;
      font-size: 2.5rem;
      font-weight: 700;
      margin-bottom: 3rem;
    }

    & .features-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      max-width: 1100px;
      gap: 1rem;

      @container body-wrapper (width < 48.75em) {
        display: flex;
        flex-direction: column;
      }

      & .feature-card {
        display: flex;
        flex-direction: column;
        align-items: center;
        background: white;
        padding: 2rem;
        border-radius: 12px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
        transition:
          transform 0.3s ease,
          box-shadow 0.3s ease;
        border: 1px solid rgba(212, 175, 55, 0.1);
        width: 550px;

        @container body-wrapper (width < 48.75em) {
          width: 100%;
        }

        & .service-icon {
          width: 60px;
          height: 60px;
          background: var(--primary-color);
          border-radius: 50%;
          display: flex;
          align-items: center;
          justify-content: center;
          margin-bottom: 1rem;
          font-size: 1.5rem;
          color: white;
          box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);

          & .product-image {
            width: 60px;
            height: 60px;
            border-radius: 50%;
          }
        }

        & .feature-title {
          font-size: 1.5rem;
          font-weight: 700;
          margin-bottom: 1rem;
          color: var(--primary-color);
        }

        & .feature-description {
          max-width: 700px;
          color: var(--primary-color);
        }
      }
    }

    & .bottom-feature-card {
      display: flex;
      margin-top: 1rem;

      & .feature-card {
        display: flex;
        width: 550px;
        flex-direction: column;
        align-items: center;
        background: white;
        padding: 2rem;
        border-radius: 12px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
        transition:
          transform 0.3s ease,
          box-shadow 0.3s ease;
        border: 1px solid rgba(212, 175, 55, 0.1);

        @container body-wrapper (width < 48.75em) {
          width: 100%;
        }

        & .service-icon {
          width: 60px;
          height: 60px;
          background: var(--primary-color);
          border-radius: 50%;
          display: flex;
          align-items: center;
          justify-content: center;
          margin-bottom: 1rem;
          font-size: 1.5rem;
          color: white;
          box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);

          & .product-image {
            width: 60px;
            height: 60px;
            border-radius: 50%;
          }
        }

        & .feature-title {
          font-size: 1.5rem;
          font-weight: 700;
          margin-bottom: 1rem;
          color: var(--primary-color);
        }

        & .feature-description {
          max-width: 700px;
          color: var(--primary-color);
        }
      }
    }
  }

  &.product-suite {
    padding: 80px 2rem;
    max-width: 1200px;
    margin: 0 auto;
    background-image: url(../assets/img/network-graphic01-flipped.png);
    background-size: cover;

    & .section-content {
      display: flex;
      flex-direction: row;
      align-items: center;

      @container body-wrapper (width < 48.75em) {
        flex-direction: column;
      }

      & .section-left {
        width: 60%;
        padding: 1rem;
        display: flex;
        flex-direction: column;
        gap: 2rem;

        @container body-wrapper (width < 48.75em) {
          width: 100%;
        }

        & h3 {
          font-size: 1.7rem;
        }

        & p {
          font-size: 1.2rem;
        }
      }

      & .section-right {
        width: 40%;

        @container body-wrapper (width < 48.75em) {
          width: 100%;
        }

        & .suite-list {
          background: white;
          padding: 2rem;
          border-radius: 12px;
          box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
          transition:
            transform 0.3s ease,
            box-shadow 0.3s ease;
          border: 1px solid rgba(52, 73, 94, 0.1);

          & .suite-list-header {
            font-size: 1.2rem;
            margin-bottom: 1rem;
          }

          & .products {
            display: flex;
            flex-direction: column;
            gap: 0.4rem;

            & .product-row {
              display: flex;
              flex-direction: row;
              padding: 0.5rem 0.8rem;
              align-items: center;
              color: black;
              text-decoration: none;

              @container body-wrapper (width < 48.75em) {
                flex-direction: column;
                margin: 20px 0 20px 0;
                border-top: 1px solid #eeeeee;
              }

              &:hover {
                cursor: pointer;
                box-shadow: 0 4px 20px rgba(67, 107, 146, 0.1);
                border-radius: var(--border-radius);
              }

              & p {
                font-size: 0.82rem;
              }

              & i {
                font-size: 24px;
              }

              & .product-image {
                width: 30%;

                & img {
                  width: 100%;
                  border-radius: var(--border-radius);
                }
              }

              & .product-description {
                width: 70%;
              }
            }
          }
        }
      }
    }
  }

  &.timeline-wrapper {
    .timeline-wrapper {
        min-height: 100vh;
        padding: 2rem;
        overflow-x: hidden;
        position: relative;
      }

    & .timeline-container {
      display: flex;
      flex-direction: column;
      justify-content: center;
      text-align: center;

      @container body-wrapper (width < 48.75em) {
        grid-template-columns: 1fr;
        gap: 2rem;
      }

      & .timeline-section {
        position: relative;

        & .company-info {
          background: rgba(255, 255, 255, 0.1);
          color: var(--primary-color);
          transform: translateY(20px);
          text-align: left;
          max-width: 56rem;
          margin: 0 auto;
          margin-top: 2rem;

          

          @container body-wrapper (width < 48.75em) {
            padding: 2rem;
          }

          h2 {
            font-size: 2rem;
            font-weight: 700;
            margin-bottom: 1.5rem;
            color: var(--primary-color);
            width: 100%;
            text-align: center;

            @container body-wrapper (width < 48.75em) {
              font-size: 1.5rem;
            }
          }

          p {
            font-size: 1.2rem;
            line-height: 1.7;
            margin-bottom: 1.5rem;
            color: var(--primary-color);

            @container body-wrapper (width < 48.75em) {
              text-align: center;
            }
          }
        }

        .timeline {
          position: relative;
          max-width: 1000px;
          margin: 0 auto;
          padding: 20px 0;

          background-image: url(../assets/img/network-graphic01.png);
          background-size: cover;
          background-repeat: no-repeat;
          background-position: center;
          background-attachment: fixed;


          &::before {
            content: "";
            position: absolute;
            left: 50%;
            top: 0;
            bottom: 0;
            width: 4px;
            background: var(--primary-light);
            transform: translateX(-50%);
            border: 1px 0 1px 0;
            border-radius: 50%;

            @container body-wrapper (width < 48.75em) {
              left: 30px;
            }
          }

          .timeline-item {
            position: relative;
            margin: 50px 0;
            width: 100%;

            &:nth-child(odd)::after {
              content: "";
              position: absolute;
              right: 50%;
              top: 50%;
              width: 10%;
              height: 2px;
              background: var(--accent-color);
              transform: translateY(-50%);
              z-index: 1;

              @container body-wrapper (width < 48.75em) {
                left: 38px;
                width: 32px;
              }
            }

            &:nth-child(even)::after {
              content: "";
              position: absolute;
              left: 50%;
              top: 50%;
              width: 10%;
              height: 2px;
              background: var(--accent-color);
              transform: translateY(-50%);
              z-index: 1;

              @container body-wrapper (width < 48.75em) {
                left: 38px;
                width: 32px;
              }
            }

            &::before {
              content: "";
              position: absolute;
              left: 50%;
              top: 50%;
              width: 16px;
              height: 16px;
              background: var(--accent-color);
              border: 4px solid white;
              border-radius: 50%;
              transform: translate(-50%, -50%);
              z-index: 2;
              box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);

              @container body-wrapper (width < 48.75em) {
                left: 30px;
              }
            }

            .timeline-card {
              background: white;
              padding: 25px;
              border-radius: 12px;
              box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
              position: relative;
              transition: all 0.3s ease;
              border: 1px solid rgba(0, 0, 0, 0.1);
              z-index: 999;

              &:hover {
                transform: translateY(-5px);
                box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15);
              }

              & .year {
                font-size: 24px;
                font-weight: bold;
                color: var(--accent-color);
                margin-bottom: 10px;
              }

              & .event {
                font-size: 1.2rem;
                color: #555;
                line-height: 1.6;

                & li {
                  list-style: none;
                }
              }
            }

            &:nth-child(odd) .timeline-card {
              margin-left: 0;
              margin-right: 55%;
              text-align: right;

              @container body-wrapper (width < 48.75em) {
                margin-left: 70px;
                margin-right: 0;
                text-align: left;
              }
            }

            &:nth-child(even) .timeline-card {
              margin-left: 55%;
              margin-right: 0;
              text-align: left;

              @container body-wrapper (width < 48.75em) {
                margin-left: 70px;
                margin-right: 0;
                text-align: left;
              }
            }
          }
        }
      }
    }
  }
}

footer {
  background: var(--primary-color);
  color: white;
  padding: 40px 2rem 20px;
  text-align: center;

  & .footer-content {
    max-width: 1200px;
    margin: 0 auto;

    & .footer-links {
      display: flex;
      justify-content: center;
      gap: 2rem;
      margin-bottom: 2rem;
      flex-wrap: wrap;

      a {
        color: #bdc3c7;
        text-decoration: none;
        transition: color 0.3s ease;

        &:hover {
          color: #d4af37;
        }
      }
    }

    & .copyright {
      color: #95a5a6;
      font-size: 0.9rem;
      padding-top: 2rem;
      border-top: 1px solid #4a5f7a;
    }
  }
}

/* General Styles */
.highlight {
  background: var(--accent-color);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 600;
}

.active {
  color: var(--accent-color) !important;
}

.btn {
  padding: 12px 32px;
  border: none;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  text-decoration: none;
  display: inline-block;
}

.btn-primary {
  background: rgba(255, 255, 255, 0.2);
  color: white;
  border: 2px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(10px);
}

.btn-primary:hover {
  background: rgba(255, 255, 255, 0.3);
  border-color: rgba(255, 255, 255, 0.5);
  transform: translateY(-2px);
}

.btn-secondary {
  background: var(--primary-light);
  color: white;
  max-width: 11rem;
  height: 3.7rem;
}

.btn-secondary:hover {
  background: var(--primary-color);
}

/* Animations and Effects */
.fade-in-element {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.8s ease-out,
    transform 0.8s ease-out;
}

.fade-in-element.is-visible {
  animation: slideUp 0.8s ease-out forwards;
}

@keyframes slideIn {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideUp {
  from {
    transform: translateY(20px);
    opacity: 0;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes floatUpDown {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-10px);
  }
}

@keyframes slide {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-3200px);
  }

  /* Only half — 10 cards × 320px */
}

@keyframes slide-mobile {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-2700px);
  }

  /* 10 cards × 270px */
}

@keyframes float {

  0%,
  100% {
    transform: translateY(0px) rotate(0deg);
  }

  50% {
    transform: translateY(-20px) rotate(180deg);
  }
}

/* Mobile Responsive */
@media (max-width: 768px) {
  .carousel-container {
    padding: 20px;
  }

  #cssmenu {
    display: none;
  }

  #cssmenu.active {
    display: block;
  }

  .cta-buttons {
    flex-direction: column;
    align-items: center;
  }

  .timeline-title {
    font-size: 2rem;
  }

  .menu-toggle:checked~.nav-container .nav-links {
    display: flex;
  }
}