html, body {
  margin: 0;
  padding: 0;
}

html, body, #map {
  width: 100%;
  height: 100vh;
  margin: 0;
  padding: 0;
}

#selectContainer {
  position: fixed;
  top: 0;
  z-index: 1000;
  width: 100%;
  padding: 11px 0;
} 

/* #countrySelect {
  width: 200px;
  margin: 0 auto;
} */

#country-selector{
  width: 200px;
  margin: 0 auto;
}

.card-container {
  display: flex;
  flex-wrap: wrap; /* Allows cards to wrap to the next line */
  gap: 20px; /* Adjust the value as needed */
}

.custom-fa-icon {
  background-color: #fff; 
  border: 2px solid #555;
  border-radius: 50px; /* Adjust for a pill/rounded shape */
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4); 
  text-align: center;
  line-height: 1; /* Center the icon vertically */
  width: 30px !important;
  height: 30px !important;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Base styles for the icon itself (the i tag) */
.custom-fa-icon i {
    font-size: 15px; /* Set a consistent size */
    color: #333;
}

/* Individual icon colors */
.coffee-shop-icon i {
    color: #6F4E37; /* Coffee brown */
}
.flight-icon i {
    color: #4A90E2; /* Sky blue */
}
.church-icon i {
    color: #8D67AB; /* Purple */
}
.school-icon i {
    color: #FF5733; /* Burnt orange */
}
.road-icon i {
    color: #5D5D5D; /* Gray */
}
.pub-icon i {
    color: #FFC300; /* Amber */
}
.restaurant-icon i {
    color: #C70039; /* Deep red */
}
.hospital-icon i {
    color: #55A8A8; /* Teal */
}
.museum-icon i {
    color: #A36B67; /* Dusty terracotta */
}
.bus-icon i {
    color: #3C6997; /* Deep blue */
}
.park-icon i {
    color: #4CAF50; /* Fresh green */
}

.stadium-icon i {
    
    color: #4A90E2; /* Blue */
}

.custom-fa-icon.default-icon {
    /* Apply styles to the div container */
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important; /* Use 0 for no radius */
}

.custom-fa-icon.default-icon i {
    /* Apply color and font size to the icon inside the div */
    color: #ff0044;
    font-size: 24px;
}



/*
  =========================================
  MODAL & WEATHER LAYOUT STYLES
  =========================================
*/

/* Reset some modal-body properties that conflict with the layout */
#weatherDisplay {
    padding: 20px;
}

/* Flexbox for the overall layout */
.weather-dashboard-container {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Base styles for all weather cards */
.weather-card {
    border-radius: 15px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    text-align: center;
    transition: transform 0.3s ease-in-out;
    color: #fff; /* Default to white text */
}

/* Styles for the large, first card */
.large-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 20px;
    
    /* Background Image and Overlay */
    background-image: linear-gradient(rgba(107, 217, 224, 0.6), rgba(96, 157, 156, 0.6)), url('https://source.unsplash.com/1200x800/?clear-sky,sun');
    background-size: cover;
    background-position: center;
}
.large-card .day-name {
    font-size: 1.5rem; 
}
.large-card .date-info {
    font-size: 0.9rem; 
}
.large-card .temperature {
    font-size: 2.5rem; 
}
.large-card .feels-like-temperature {
    font-size: 1rem; 
}

.large-card .icon-container img {
    width: 60px; /* Reduced width */
    height: 60px; /* Reduced height */
}

/* Styles for the smaller card carousel */
#smallerWeatherCarousel .carousel-inner {
    padding: 10px;
    
}
#smallerWeatherCarousel .carousel-item {
    text-align: center; 
    
} 
#smallerWeatherCarousel .small-card {
    background-image:linear-gradient(rgba(118, 228, 236, 0.6), rgba(96, 157, 156, 0.6));
    border: 1px solid #333;
    padding: 15px;
    color: #333; /* Dark text for readability on light background */
}

/* Text and icon adjustments for small cards */
#smallerWeatherCarousel .small-card .day-name {
    font-size: 1rem;
    font-weight: bold;
}
#smallerWeatherCarousel .small-card .date-info {
    font-size: 0.8rem;
    color: #666;
}
#smallerWeatherCarousel .small-card .temperature {
    font-size: 1.5rem;
}
#smallerWeatherCarousel .small-card .feels-like-temperature {
    font-size: 0.8rem;
    color: #666;
}
#smallerWeatherCarousel .small-card .icon-container img {
    width: 50px;
    height: 50px;
}

/* Center Carousel Controls and override Bootstrap defaults */
#smallerWeatherCarousel .carousel-control-prev,
#smallerWeatherCarousel .carousel-control-next {
    width: auto;
    background: none;
    top: 50%;
    transform: translateY(-50%);
}

@media (max-width: 768px) {
    #smallerWeatherCarousel .carousel-item {
        padding: 5px;
    }
}

/*--------------------------------------------------------------
# Preloader
--------------------------------------------------------------*/

#preloader {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 9999;
overflow: hidden;
background: #fff;
}

#preloader:before {
content: "";
position: fixed;
top: calc(50% - 30px);
left: calc(50% - 30px);
border: 6px solid #f2f2f2;
border-top: 6px solid #56829e ;
border-radius: 50%;
width: 60px;
height: 60px;
-webkit-animation: animate-preloader 1s linear infinite;
animation: animate-preloader 1s linear infinite;
}


@-webkit-keyframes animate-preloader {
    0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
    }
    100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
    }
}

@keyframes animate-preloader {
    0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
    }
    100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
    }
}