@keyframes fadeInRight {
  from { 
    opacity: 0;
    transform: translateX(150px);
  }
  to { 
    opacity: 1;
    transform: translateX(0);
  }
}

.fiRight {
  @media screen and (min-width: 768px) {
    animation: fadeInRight 1s ease-out both;
    animation-timeline: view();
    animation-range: entry 70% entry 175%;
  }
}

@keyframes fadeInBottom {
  from { 
    opacity: 0;
    transform: translateY(100px);
  }
  to { 
    opacity: 1;
    transform: translateY(0);
  }
}

.fiBottom {
  animation: fadeInBottom 1s ease-out both;
  animation-timeline: view();
  animation-range: entry 70% entry 200%;
}

@keyframes fadeInLeft {
  from { 
    opacity: 0;
    transform: translateX(-150px);
  }
  to { 
    opacity: 1;
    transform: translateX(0);
  }
}

.fiLeft {
  @media screen and (min-width: 768px) {
    animation: fadeInLeft 1s ease-out both;
    animation-timeline: view();
    animation-range: entry 70% entry 175%;
  }
}

:root {
  --curious-blue: 		#0075a8;
  --dark-blue:				#00375e;
	--deep-blue: 				#00283d;
	--dark-blue-black: 	#000f26;

  --bg-white-smoke:		#f2f2f2;
	--bg-light-gray:	  #d3d3d3;
	--bg-steel-gray: 		#71797e;
	--bg-curious-blue: 	var(--curious-blue);
	--bg-dark-blue: 		var(--dark-blue);
}

h1 {
  position: absolute;
  top: -100px;
}

nav a {
  color: white;
  text-decoration: none;
  &:hover {
    text-decoration: underline;
  }
}
p {
  text-wrap: balance;
}

nav.breadcrumb-wrapper {
  padding: 12px 0;
  background-color: var(--bg-white-smoke);
  ol {
    margin-bottom: 0;
    a {
      color: inherit;
      text-decoration: none;
      &:hover {
        text-decoration: underline;
      }
    }
  }
}

header {
  color: white;
  .carousel-caption {
    padding: 0;
    bottom: -3%;
    @media screen and (min-width: 768px) {
      bottom: 2%;
    }
    @media screen and (min-width: 992px) {
      bottom: 3%;
    }
    @media screen and (min-width: 1200px) {
      bottom: 4%;
    }
    p {
      font-size: 1.2rem;
      font-weight: bold;
      @media screen and (min-width: 992px) {
        font-size: 1.4rem;
      }
      @media screen and (min-width: 1200px) {
        font-size: 1.6rem;
      }
    }
  }
}

#mini-nav {
  padding-bottom: 35px;
  background-color: #000f26;
  hr {
    border-top: 2px solid white;
  }
  .header-icon-link {
    width: 100px;
    transition: transform 0.2s ease-in-out;
    &:hover {
      transform: scale(1.1);
    }
  }
}

section {
  padding-top: 35px;
  padding-bottom: 35px;
  &#sec-02 {
    background-color: var(--bg-white-smoke);
  }
  &.home-page {
    .img-heading-wrapper {
      display: flex;
      gap: 1rem;
      align-items: start;
      margin-top: 1rem;
      margin-bottom: 1rem;
      .heading-icon {
        width: 58px;
        @media screen and (min-width: 768px) {
          width: 68px;
        }
      }
    }
    .services-link {
      margin-top: 20px;
      background-color: var(--dark-blue);
      border: 1px solid var(--curious-blue);
      color: white;
       &:hover {
        background-color: var(--curious-blue);
        border-color: var(--dark-blue);
       }
    }
  }
  &.tech-used-section {
    color: white;
    background-color: var(--bg-curious-blue);
    .webdev-icon {
      width: 75px;
      margin: 20px 40px;
      transition: transform 0.2s ease-in-out;
      &:hover {
        transform: scale(1.1);
      }
    }
  }
  &.projects-page {
    &#sec-01 {
      background-color: var(--bg-steel-gray);
      color: white;
    }
    .card-wrapper {
      justify-content: center;
    }
    .card {
      width: calc(100% - 100px);
      margin: 30px auto;
      padding: 0;
      border: none;
      border-top-left-radius: 15px;
      border-top-right-radius: 15px;
      @media screen and (min-width: 768px) {
        width: calc(50% - 50px);
      }
      @media screen and (min-width: 992px) {
        width: calc(33% - 33px);
      }
      .card-img-top {
        width: 100%;
        height: 250px;
      }
      .card-body {
        padding: 15px;
        background-color: var(--bg-dark-blue);
        border-bottom-left-radius: 15px;
        border-bottom-right-radius: 15px;
        .mrr-icon {
          opacity: 0.1;
          width: 60px;
          &.selected {
            opacity: 1;
            transform: scale(1.1);
            transition: transform 0.2s ease-in-out;
            cursor: pointer;
            &:hover {
              transform: scale(1.3);
            }
          }
        }
        hr {
          border-top: 1px solid white;
          margin-top: 10px;
          margin-bottom: 10px;
        }
        .project-text-wrapper {
          height: 24px;
          overflow: hidden;
          .card-text {
            font-size: 1rem;
            color: white;
            &.category-name {
              font-size: 0.9rem;
              opacity: 0;
            }
          }
        }
      }
    }
  }
  &.services-page {
    padding-top: 35px;
    padding-bottom: 35px;
    &:nth-of-type(even) {
      background-color: var(--bg-light-gray);
    }
    .img-heading-wrapper {
      display: flex;
      gap: 1rem;
      align-items: start;
      margin-top: 1rem;
      margin-bottom: 1rem;
      .heading-icon {
        width: 65px;
        @media screen and (min-width: 768px) {
          width: 70px;
        }
      }
      &:has(h3) .heading-icon {
        width: 60px;
        @media screen and (min-width: 768px) {
          width: 65px;
        }
      }
    }
    p.h3 {
      margin-bottom: 25px;
    }
    .card {
      margin-bottom: 30px;
      &.popular {
        .card-header {
          background-color: var(--dark-blue);
          color: white;
        }
        .card-footer {
          background-color: var(--dark-blue);
          color: white;
        }
      }
      .card-body {
        p:first-child {
          margin-top: 15px;
          margin-bottom: -20px;
        }
        p.price {
          font-size: 75px;
          font-weight: bold;
          color: var(--curious-blue);
          margin-bottom: 0;
          sup {
            font-size: 20px;
            vertical-align: super;
          }
        }
      }
    }
    
    ul {
      margin-left: 18px;
      margin-bottom: 25px;
    }
    &#sec-04 {
      > p {
        text-align: center;
        margin-bottom: 35px;
      }
      .card {
        padding: 20px;
        border-radius: 15px;
        form {
          p {
            margin-bottom: 20px;
          }
          button {
            width: 40%;
            margin: 20px auto 0;
            background-color: var(--dark-blue);
            color: white;
          }
        }
      }
    }
  }
}

footer {
  padding-top: 35px;
  padding-bottom: 35px;
  h4 {
    width: 50%;
    border-bottom: 1px solid white;
    margin-bottom: 20px;
    padding-bottom: 10px;
    @media screen and (min-width: 768px) {
      font-size: calc(1.125rem + .3vw);
      width: 80%;
    }
  }
  ul {
    margin-bottom: 30px;
    a {
      color: white;
      &.active {
        font-weight: bold;
        color: var(--curious-blue);
      }
    }
  }
  .footer-copyright {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 50px;
    font-size: 0.8rem;
    span.pipe {
      margin-inline: 10px;
    }
  }
}

