html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

/* Carousel Styles */
.carousel {
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.carousel-item img {
  border-radius: 10px;
}

.carousel-caption {
  background: rgba(0, 0, 0, 0.7);
  border-radius: 10px;
  padding: 20px;
  bottom: 20px;
}

.carousel-caption h5 {
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 10px;
}

.carousel-caption p {
  font-size: 1rem;
  margin-bottom: 0;
}

.carousel-control-prev,
.carousel-control-next {
  width: 5%;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
  background-size: 20px 20px;
}

.carousel-indicators button {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  margin: 0 4px;
}

/* Responsive carousel height */
@media (max-width: 768px) {
  .carousel-item img {
    height: 250px !important;
  }
  
  .carousel-caption {
    padding: 10px;
    bottom: 10px;
  }
  
  .carousel-caption h5 {
    font-size: 1.2rem;
  }
  
  .carousel-caption p {
    font-size: 0.9rem;
  }
}

/* Contact Form Styles */
.contact-form {
  background: #ffffff;
  border-radius: 10px;
  box-shadow: 0 0 20px rgba(0,0,0,0.1);
  padding: 30px;
}

.form-label {
  font-weight: 600;
  color: #495057;
  margin-bottom: 8px;
}

.form-control {
  border-radius: 8px;
  border: 2px solid #e9ecef;
  padding: 12px 15px;
  transition: all 0.3s ease;
}

.form-control:focus {
  border-color: #0d6efd;
  box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
  transform: translateY(-1px);
}

.btn-primary {
  background: linear-gradient(45deg, #0d6efd, #0b5ed7);
  border: none;
  border-radius: 8px;
  padding: 12px 30px;
  font-weight: 600;
  transition: all 0.3s ease;
}

.btn-primary:hover {
  background: linear-gradient(45deg, #0b5ed7, #0a58ca);
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(13, 110, 253, 0.4);
}

.card {
  border: none;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
  transition: all 0.3s ease;
}

.card:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,0.15);
  transform: translateY(-2px);
}

.card-header {
  background: linear-gradient(45deg, #f8f9fa, #e9ecef);
  border-bottom: 2px solid #dee2e6;
  border-radius: 10px 10px 0 0 !important;
}

.alert {
  border: none;
  border-radius: 8px;
  padding: 15px 20px;
}

.text-danger {
  font-size: 0.875em;
  margin-top: 5px;
}

/* Animation for form validation */
.was-validated .form-control:invalid {
  animation: shake 0.5s ease-in-out;
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-5px); }
  75% { transform: translateX(5px); }
}

/* Contact info styling */
.contact-info a {
  color: inherit;
  transition: color 0.3s ease;
}

.contact-info a:hover {
  color: #0d6efd !important;
}