/* =========================
   Your Custom Styles Only
========================= */

/* Logo image responsive */
/* .logo-img {
  height: 100px;
  max-height: 100px; 
  width: 100px;
  max-width: 100%;
} */

/* Logo should scale proportionally, constrained by max-height */
.logo-img {
  width: auto;
  height: auto;
  max-height: 60px; /* Try 60px, adjust as you like */
  /* If you want to keep the shape consistent, remove explicit width and let max-height do the work. */
  object-fit: cover; /* or `contain` if you prefer no cropping */
}

/* On smaller devices, reduce further if needed */
@media (max-width: 768px) {
  .logo-img {
    max-height: 50px;
  }
}

@media (max-width: 576px) {
  .logo-img {
    max-height: 40px;
  }
}



/* Navbar & Masthead */
#mainNav {
  min-height: 3.5rem;
  background-color: transparent;
}
#mainNav .navbar-toggler {
  font-size: 100%;
  padding: 0.75rem;
  color: #ffffff;
  border: 2px solid #64a19d;
  background-color: rgba(0, 0, 0, 0.3); /* Semi-transparent background */
  border-radius: 5px; /* Optional rounded corners */
}
#mainNav .navbar-toggler:focus {
  outline: none;
}
#mainNav .navbar-brand {
  color: #000;
  font-weight: 700;
  padding: 0.9rem 0;
}

/* On larger screens, the nav links are semi-transparent until scroll */
@media (min-width: 350px) {
  #mainNav {
    transition: background-color 0.3s ease-in-out;
  }
  #mainNav .navbar-brand {
    padding: 0.5rem 0;
    color: rgba(255, 255, 255, 0.5);
  }
  #mainNav .nav-link {
    transition: none;
    padding: 2rem 1.5rem;
    /* color: rgba(255, 255, 255, 0.5); */
    color: #fff; /* solid white instead of semi-transparent */
    text-shadow: 0 0 5px rgba(0, 0, 0, 0.7);

  }
  #mainNav .nav-link:hover {
    /* color: rgba(255, 255, 255, 0.75); */
    color: #fff; /* remain fully visible on hover */
    text-shadow: 0 0 8px rgba(0, 0, 0, 0.8);

  }
  #mainNav .nav-link:active {
    color: #fff;
  }
  /* When "shrink" (scrolled or forced) */
  #mainNav.navbar-shrink {
    background-color: transparent;
  }
  #mainNav.navbar-shrink .navbar-brand {
    color: #000;
  }
  #mainNav.navbar-shrink .nav-link {
    color: #64a19d;
    padding: 1.5rem 1.5rem 1.25rem;
    border-bottom: 0.25rem solid transparent;
  }
  #mainNav.navbar-shrink .nav-link:hover {
    color: #64a19d;
  }
  #mainNav.navbar-shrink .nav-link:active {
    color: #467370;
  }
  #mainNav.navbar-shrink .nav-link.active {
    color: #64a19d;
    outline: none;
    border-bottom: 0.25rem solid #64a19d;
  }
}

/* Masthead with video background */
.masthead {
  position: relative;
  width: 100%;
  min-height: 35rem;
  padding: 15rem 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 75%, #000 100%);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.masthead h1 {
  font-family: "Varela Round", sans-serif;
  font-size: 2.5rem;
  line-height: 2.5rem;
  letter-spacing: 0.8rem;
  background: linear-gradient(rgba(255,255,255,0.9), rgba(255,255,255,0));
  -webkit-text-fill-color: transparent;
  -webkit-background-clip: text;
  background-clip: text;
}
@media (min-width: 992px) {
  .masthead {
    height: 100vh;
    padding: 0;
  }
  .masthead h1 {
    font-size: 6.5rem;
    line-height: 6.5rem;
    letter-spacing: 0.8rem;
  }
}
.bg-video {
  position: absolute;
  top: 0; 
  left: 0;
  width: 100%; 
  height: 100%;
  object-fit: cover;
  z-index: -1;
  transition: opacity 0.5s ease;  /* for fading effect*/
}

/* Video colorful fading effect  */
/* Full-size overlay positioned above the video */
/* .video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background: transparent; 
  transition: opacity 1s ease-in-out;
  z-index: -1;
}
.video-overlay.fade-color {
  background: rgba(255, 0, 0, 0.3); 
} */


/* The colorful fade animation keyframes */
/* @keyframes colorfulFade {
  0% {
    opacity: 0;
    background-color: transparent;
  }
  20% {
    opacity: 1;
    background-color: #ff3366;
  }
  50% {
    background-color: #33ccff; 
  }
  80% {
    background-color: #66ff66; 
  }
  100% {
    opacity: 0;
    background-color: transparent;
  }
} */

/* Apply the animation when the class is added */
.fade-color {
  animation: colorfulFade 2s forwards;
}

/* About Section */
.about-section {
  padding-top: 10rem;
  background: linear-gradient(to bottom, #000 0%, rgba(0,0,0,0.9) 75%, rgba(0,0,0,0.8) 100%);
}
.about-section p {
  margin-bottom: 5rem;
}

/* Projects Section */
.projects-section {
  padding: 10rem 0;
}
.projects-section .featured-text {
  padding: 2rem;
}
@media (min-width: 992px) {
  .projects-section .featured-text {
    padding: 0 0 0 2rem;
    border-left: 0.5rem solid #64a19d;
  }
}
.projects-section .project-text {
  padding: 3rem;
  font-size: 90%;
}
@media (min-width: 992px) {
  .projects-section .project-text {
    padding: 5rem;
  }
}

.bg-us-flag {
  background-image: url("../images/USFLag4.jpeg") !important; 
  background-size: cover; 
  background-position: center;  
}

/* Contact Section */
.contact-section {
  padding-top: 5rem;
}
.contact-section .card {
  border: 0;
  border-bottom: 0.25rem solid #64a19d;
}
.contact-section .card h4 {
  font-size: 0.8rem;
  font-family: "Varela Round", sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.15rem;
}
.contact-section .card hr {
  opacity: 1;
  border-color: #64a19d;
  border-width: 0.25rem;
  width: 3rem;
}
.contact-section .social {
  margin-top: 5rem;
}
.contact-section .social a {
  text-align: center;
  height: 3rem; 
  width: 3rem;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 100%;
  line-height: 3rem;
  color: rgba(255, 255, 255, 0.3);
}
.contact-section .social a:hover {
  color: rgba(255, 255, 255, 0.5);
}
.contact-section .social a:active {
  color: #fff;
}

/* Footer */
.footer {
  padding: 5rem 0;
}
/* #558985 */
.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: #64a19d;
  --bs-btn-border-color: #64a19d;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #558985; 
  --bs-btn-hover-border-color: #50817e;
  --bs-btn-focus-shadow-rgb: 123, 175, 172;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #50817e;
  --bs-btn-active-border-color: #4b7976;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #64a19d;
  --bs-btn-disabled-border-color: #64a19d;
}

/* =========================
   Sign In / Sign Up Modal
========================= */

/* Outer container for sign-in/sign-up + overlay */
.container-auth {
  position: relative;
  width: 850px;         /* You can adjust this */
  max-width: 100%;
  min-height: 500px;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 14px 28px rgba(0,0,0,0.25),
              0 10px 10px rgba(0,0,0,0.22);
  transition: all 0.6s ease-in-out;
}

/* Each form container (Sign In and Sign Up) */
.form-container {
  position: absolute;
  top: 0;
  height: 100%;
  width: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  text-align: center;
  transition: all 0.6s ease-in-out;
}
.form-container .btn-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 10;
}

/* Sign Up panel starts behind overlay, invisible */
.sign-up-container {
  left: 0;
  opacity: 0;
  z-index: 1;
}
.sign-up-container form {
  /* Some maximum height relative to the viewport 
     so it never grows off-screen */
  max-height: 75vh; 
  overflow-y: auto; 

  /* Add some extra padding so the button doesn't 
     get too close to the bottom edge */
  padding-bottom: 1rem;
}


/* Sign In panel is in front by default */
.sign-in-container {
  left: 0;
  z-index: 2;
}

/* Overlay container (the right half) */
.overlay-container {
  position: absolute;
  top: 0;
  left: 50%;
  width: 50%;
  height: 100%;
  overflow: hidden;
  transition: transform 0.6s ease-in-out;
  z-index: 100;
}
.overlay {
  background: linear-gradient(to right, #64a19d, #FF4B2B);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 0 0;
  color: #ffffff;
  position: relative;
  left: -100%;
  height: 100%;
  width: 200%;
  transform: translateX(0);
  transition: transform 0.6s ease-in-out;
}
.overlay-panel {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  top: 0;
  height: 100%;
  width: 50%;
  transition: transform 0.6s ease-in-out;
}
.overlay-left {
  transform: translateX(-20%);
}
.overlay-right {
  right: 0;
  transform: translateX(0);
}
/* The "ghost" button inside overlay */
.ghost {
  background: transparent;
  border: 2px solid #fff;
  color: #fff;
  margin-top: 1rem;
  cursor: pointer;
  padding: 0.75rem 2rem;
  border-radius: 20px;
}


/* Trigger class to switch panels */
.container-auth.right-panel-active .sign-up-container {
  transform: translateX(100%);
  opacity: 1;
  z-index: 5;
}
.container-auth.right-panel-active .sign-in-container {
  transform: translateX(100%);
  opacity: 0;
  z-index: 1;
}
.container-auth.right-panel-active .overlay-container {
  transform: translateX(-100%);
}
.container-auth.right-panel-active .overlay {
  transform: translateX(50%);
}
.container-auth.right-panel-active .overlay-left {
  transform: translateX(0);
}
.container-auth.right-panel-active .overlay-right {
  transform: translateX(20%);
}

/* Form inputs */
form input {
  background: #eee;
  border: none;
  padding: 1rem;
  margin: 8px 0;
  width: 80%;
  border-radius: 4px;
}
form button {
  margin-top: 1rem;
  padding: 1rem 2rem;
  border: none;
  border-radius: 20px;
  background: #ff416c;
  color: #fff;
  cursor: pointer;
  font-weight: 600;
}

/* Input containers for spacing + password toggle icon */
.input-container {
  margin-bottom: 1rem;
  position: relative;
}
.password-container {
  position: relative;
  margin-bottom: 1rem;
}
.toggle-password {
  position: absolute;
  top: 50%;
  right: 1rem;
  transform: translateY(-50%);
  cursor: pointer;
  color: #666;
}
.toggle-password:hover {
  color: #333;
}

/* Error messages styling */
.error-messages {
  color: #856404;
  background-color: #FFF3CD;
  border: 1px solid #D8000C;
  border-radius: 5px;
  padding: 15px;
  margin-top: 10px;
  margin: 1rem 0;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.5;
  display: none;
  text-align: left;
}
.error-messages ul {
  list-style-type: none;
  padding: 0; 
  margin: 0;
}
.error-messages li {
  margin-bottom: 10px;
  padding-left: 25px;
  position: relative;
  display: flex;
  align-items: center;
}
.error-messages li::before {
  content: '⚠️';
  margin-right: 10px;
  flex-shrink: 0;
}



/* Hide the overlay on very small screens to avoid crowding -- START */
@media (max-width: 576px) {
  .container-auth {
    width: 95%;
    min-height: 600px;
    margin: 0.5rem auto;
    border-radius: 8px;
    position: relative;
    overflow: hidden;
  }

  .form-container {
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    transition: transform 0.5s ease-in-out, opacity 0.5s ease-in-out;
  }

  .overlay-container {
    display: none;
  }

  /* Sign In - visible by default */
  .sign-in-container {
    transform: translateX(0%);
    opacity: 1;
    z-index: 2;
  }

  /* Sign Up - hidden initially */
  .sign-up-container {
    transform: translateX(100%);
    opacity: 0;
    z-index: 1;
  }

  /* When toggled */
  .container-auth.show-signup .sign-in-container {
    transform: translateX(-100%);
    opacity: 0;
    z-index: 1;
  }

  .container-auth.show-signup .sign-up-container {
    transform: translateX(0%);
    opacity: 1;
    z-index: 2;
  }

  .container-auth .btn-close {
    display: block;
    position: absolute;
    top: 10px;
    right: 10px;
  }

  .mobile-toggle {
    display: flex;
    flex-direction: column;
    align-items: center;
  
    margin-top: 1rem;
  }

  .mobile-toggle button {
    border: none;
    background-color: #f01346;
    color: #fff;
    padding: 0.6rem 1.5rem;
    border-radius: 30px;
    font-weight: 600;
    font-size: 1rem;
  }

  .mobile-toggle span {
    font-size: 0.9rem;
    color: #333;
  }
}

/* Hide the overlay on very small screens to avoid crowding -- END */

/* Make the collapsed nav have a margin & background on mobile */
@media (max-width: 991.98px) {
  .navbar-collapse {
    margin-top: 4rem;
    background-color: rgba(0, 0, 0, 0.7);
  }
  .navbar-nav .nav-link {
    padding: 1rem 0;
    color: #fff;
  }

}
@media (min-width: 577px) {
  .mobile-toggle{
    display: none;
  }
}

.forgot-password-link {
  margin-top: 1rem;
  font-size: 0.9rem;
  text-align: center;
}
.forgot-password-link a {
  color: #FF416C;  /* or any accent color you want */
  text-decoration: underline;
}
.forgot-password-link a:hover {
  color: #FF4B2B;
}

