/* Reset and Base Styles */
* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

body {
   font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
   background-color: #fcfcfc;
   color: #000000;
   line-height: 1.6;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
   height: 100%;
   width: 100%;
}

body main {
   background-color: #fcfcfc;
   padding-bottom: 200px;
}


/* Welcome Section */
.welcome-section {
   max-width: 1400px;
   margin: 0 auto;
   padding: 5rem 2rem 4rem;
   text-align: center;
   height: 100%;
   width: 100%;
}

.welcome-heading {
   font-size: 3rem;
   font-weight: 700;
   line-height: 1.25;
   color: #000000;
   text-transform: uppercase;
   letter-spacing: 0.03em;
   margin: 0;
   font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
}

/* Filters Section */
.filters-section {
   max-width: 1400px;
   margin: 0 auto;
   padding: 0 2rem 2rem 2rem;
   text-align: center;
}

.filters {
   display: flex;
   justify-content: center;
   align-items: center;
   flex-wrap: wrap;
   gap: 0;
}

.filter-button {
   font-size: 0.8125rem;
   font-weight: 500;
   letter-spacing: 0.15em;
   color: #333333;
   text-decoration: none;
   text-transform: uppercase;
   transition: color 0.2s ease;
   position: relative;
   padding: 0.75rem 0.5rem !important;
   white-space: nowrap;
   background-color: transparent;
   border: none;
   cursor: pointer;
}

.filter-button:hover {
   color: #3f7e47;
}

.filter-button.active {
   color: #3f7e47;
}

.filter-button.active::after {
   content: '';
   position: absolute;
   bottom: 0;
   left: 0.5rem;
   right: 0.5rem;
   height: 1.5px;
   background-color: #3f7e47;
}

.filter-separator {
   color: #666666;
   font-size: 0.625rem;
   padding: 0 0.5rem;
   line-height: 1;
}

/* Gallery Section */
.gallery-section {
   max-width: 1400px;
   margin: 0 auto;
   padding: 0 2rem 5rem;
   height: auto !important;
}

/* Masonry Layout Container */
.layout-container {
   width: min(1400px, 99%); /* Responsive Width */
   margin: 0 auto; /* Centers the Layout */
   columns: 3 300px;
   column-gap: 1rem;
   padding-top: 1rem;
   height: auto;
}

.gallery .content {
   background-color: white;
   height: auto;
   width: 100%;
   display: block;
   overflow: hidden;
   border-radius: 2px;
   margin-bottom: 1rem;
   padding-top: 0rem;
   break-inside: avoid;
   opacity: 1;
   transition: opacity 0.3s ease;
   position: relative;
   min-height: 200px;
}

.gallery .layout-container .content img {
   display: block;
   width: 100%;
   cursor: pointer;
   transition: 0.6s ease-in-out;
   opacity: 0;
   position: relative;
   z-index: 2;
}

.gallery .layout-container .content img.loaded {
   opacity: 1;
}

/* Skeleton Loader */
.gallery .content .skeleton-loader {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
   background-size: 200% 100%;
   animation: skeleton-loading 1.5s ease-in-out infinite;
   z-index: 1;
   border-radius: 2px;
}

.gallery .content .skeleton-loader.hidden {
   display: none;
}

@keyframes skeleton-loading {
   0% {
      background-position: 200% 0;
   }
   100% {
      background-position: -200% 0;
   }
}

.gallery .layout-container .content img:hover {
   display: block;
   scale: 1.1;
   overflow: hidden;
   transition: 0.6s ease-in-out;
   background-color: white;
   padding: 0rem;
}

/* Responsive Design */
@media (max-width: 1200px) {
   .layout-container {
      columns: 3 300px;
   }
}

@media (max-width: 900px) {
   .header-container {
      padding: 1.5rem 2rem;
   }

   .main-nav {
      gap: 1.5rem;
   }

   .nav-link {
      font-size: 0.75rem;
   }

   .welcome-section {
      padding: 4rem 2rem 3rem;
   }

   .welcome-heading {
      font-size: 2rem;
      line-height: 1.3;
   }

   .filters-section {
      padding: 0 2rem 3rem;
   }

   .gallery-section {
      padding: 0 2rem 4rem;
   }

   .layout-container {
      columns: 2 300px;
   }
}

@media (max-width: 768px) {
   .header-container {
      padding: 1rem;
   }

   .main-nav {
      display: none;
   }

   .logo-text {
      font-size: 1.25rem;
   }

   .welcome-section {
      padding: 3rem 1.5rem 2rem;
   }

   .welcome-heading {
      font-size: 1.5rem;
      line-height: 1.4;
   }

   .filters-section {
      padding: 0 1.5rem 2rem;
   }

   .filters {
      gap: 0.25rem;
   }

   .filter-button {
      font-size: 0.75rem;
      padding: 0.4rem 0.2rem;
   }

   .filter-separator {
      font-size: 0.65rem;
      padding: 0 0.15rem;
   }

   .gallery-section {
      padding: 0 0.2rem 0 0.2rem;
   }

   .filters-section {
      padding: 0 0.2rem 0 0.2rem;
   }

   .layout-container {
      columns: 2 250px;
   }
}

@media only screen and (max-width: 600px) {
   .gallery .layout-container .content img {
      display: block;
      margin-bottom: 0em;
      width: 100%;
      border-radius: 0px;
      cursor: pointer;
   }

   .gallery .layout-container .content img:hover {
      scale: unset;
      overflow: hidden;
      transition: 0s ease;
      background-color: white;
      padding: 0rem;
   }

   .layout-container {
      columns: 1 300px;
   }
}

@media (max-width: 480px) {
   .welcome-heading {
      font-size: 1.25rem;
   }

   .layout-container {
      columns: 1;
   }
}
