/* Contact section fixes */
#contact .container {
  width: 95%;
  max-width: 1100px;
  overflow: hidden;
}

.contact-link {
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Make sure all form elements stay within container */
#contact-form input,
#contact-form textarea,
#contact-form button {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Contact link - ensure email fits on mobile */
.contact-link {
  width: 100%;
  display: flex;
  align-items: center;
}

.contact-link i {
  flex-shrink: 0;
}

.contact-link span {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px; /* Fallback for browsers that don't support text-xs */
}

@media (min-width: 768px) {
  .contact-link span {
    font-size: 16px; /* Fallback for browsers that don't support text-base */
  }
}/* Additional custom styles that complement Tailwind CSS */

/* Flag emoji font fallbacks */
.flag {
  font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji",
               "EmojiOne Color", "Twemoji Mozilla", sans-serif;
}

/* Smooth scrolling for the entire page */
html {
  scroll-behavior: smooth;
}

/* Fade-in animation */
.fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.fade-in.appear {
  opacity: 1;
  transform: translateY(0);
}

/* Testimonial slider dots */
.testimonial-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #d1d5db; /* gray-300 */
  transition: background-color 0.3s;
}

.testimonial-dot.active {
  background-color: #0073e6; /* primary */
}

/* Back to top button */
#back-to-top {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}

#back-to-top.show {
  opacity: 1;
  visibility: visible;
}

/* Custom transitions and animations */
.transition-transform {
  transition: transform 0.3s ease;
}

/* Mobile Navigation - JavaScript approach instead of checkbox */
.mobile-nav {
  position: relative;
}

.nav-toggle-label {
  position: relative;
  display: block;
  width: 36px;
  height: 36px;
  cursor: pointer;
  z-index: 101;
}

/* Hamburger icon */
.nav-toggle-label span,
.nav-toggle-label span::before,
.nav-toggle-label span::after {
  display: block;
  position: absolute;
  height: 3px;
  width: 24px;
  background: white;
  border-radius: 2px;
  transition: all 0.3s ease;
}

.nav-toggle-label span {
  top: 16px;
  left: 6px;
}

.nav-toggle-label span::before,
.nav-toggle-label span::after {
  content: '';
  left: 0;
}

.nav-toggle-label span::before {
  top: -8px;
}

.nav-toggle-label span::after {
  bottom: -8px;
}

/* Mobile menu links container */
.mobile-nav-links {
  position: absolute;
  top: 100%;
  right: -16px;
  background-color: #004a8c;
  width: 200px;
  padding: 0;
  margin-top: 12px;
  border-radius: 6px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: all 0.3s ease;
  overflow: hidden;
  z-index: 100;
}

.mobile-nav-links a {
  display: block;
  padding: 12px 16px;
  color: white;
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  transition: background-color 0.2s;
}

.mobile-nav-links a:last-child {
  border-bottom: none;
}

.mobile-nav-links a:active,
.mobile-nav-links a:hover {
  background-color: rgba(255, 255, 255, 0.1);
  color: #ffd700;
}

/* Toggle animation */
.nav-toggle:checked ~ .nav-toggle-label span {
  background: transparent;
}

.nav-toggle:checked ~ .nav-toggle-label span::before {
  transform: rotate(45deg);
  top: 0;
}

.nav-toggle:checked ~ .nav-toggle-label span::after {
  transform: rotate(-45deg);
  bottom: 0;
}

.nav-toggle:checked ~ .mobile-nav-links {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Hover animations for cards */
.hover\:transform:hover {
  transform: translateY(-5px);
}

/* Prevent overflow on mobile */
@media (max-width: 768px) {
  .container {
    width: 100%;
    padding-left: 16px;
    padding-right: 16px;
  }
}

/* Ensure buttons have a proper touch target on mobile */
@media (max-width: 640px) {
  button, 
  .contact-link,
  nav a {
    padding: 8px;
    display: inline-block;
  }
}

/* Better email handling on mobile */
.contact-link.email-link {
  display: flex;
  align-items: center;
  width: 100%;
}

.contact-link.email-link i {
  flex-shrink: 0;
}

.contact-link.email-link span {
  font-size: 10px !important; /* Even smaller for mobile */
  max-width: calc(100% - 30px); /* Account for icon width */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (min-width: 768px) {
  .contact-link.email-link span {
    font-size: 14px !important; /* Slightly smaller than other contact info */
  }
}

/* If needed, make container wider on small screens */
@media (max-width: 360px) {
  #contact .container {
    width: 100%;
    padding-left: 8px;
    padding-right: 8px;
  }
}
