 @font-face {
     font-family: 'FiraGO';
     src: url('../fonts/FiraGO-Regular.woff') format('woff');
     font-weight: 400;
     font-style: normal;
     font-display: swap;
 }

 @font-face {
     font-family: 'FiraGO';
     src: url('../fonts/FiraGO-Medium.woff2') format('woff2');
     font-weight: 500;
     font-style: normal;
     font-display: swap;
 }

 @font-face {
     font-family: 'FiraGO';
     src: url('../fonts/FiraGO-Bold.woff2') format('woff2');
     font-weight: 700;
     font-style: normal;
     font-display: swap;
 }

 html {
     scrollbar-gutter: stable;
 }

 body {
     font-family: 'Noto Sans Georgian', sans-serif;
     background-color: #F9F8F3;
     overflow-x: hidden;
     color: #2A2A2A;
     -webkit-font-smoothing: antialiased;
 }

 h1,
 h2,
 h3,
 h4,
 h5,
 h6 {
     font-family: 'FiraGO', sans-serif;
     line-height: 1.3 !important;
     font-feature-settings: "case" on;
 }

 #navbar a,
 #mobile-menu a {
     font-family: 'FiraGO', sans-serif;
     font-feature-settings: "case" on;
     font-weight: 500;
     font-size: 14px !important;
 }

 ::-webkit-scrollbar {
     width: 6px;
 }

 ::-webkit-scrollbar-track {
     background: #F9F8F3;
 }

 ::-webkit-scrollbar-thumb {
     background: #D4A373;
 }

 ::-webkit-scrollbar-thumb:hover {
     background: #2A4D2E;
 }

 .reveal {
     opacity: 0;
     transform: translateY(30px);
     transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
 }

 .reveal.active {
     opacity: 1;
     transform: translateY(0);
 }

 .reveal-delay-1 {
     transition-delay: 150ms;
 }

 .reveal-delay-2 {
     transition-delay: 300ms;
 }

 .cat-filter-btn.active {
     background-color: #2A4D2E !important;
     color: #F9F8F3 !important;
     border-color: #2A4D2E !important;
 }

 .media-filter-btn.active {
     background-color: #D4A373 !important;
     color: #F9F8F3 !important;
     border-color: #D4A373 !important;
 }

 .faq-content {
     transition: max-height 0.4s ease-in-out, opacity 0.4s ease;
     max-height: 0;
     overflow: hidden;
     opacity: 0;
 }

 .faq-content.open {
     opacity: 1;
 }

 #contact-popup {
     transform: translateY(20px) scale(0.8) rotate(5deg);
     opacity: 0;
     pointer-events: none;
     transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
     transform-origin: bottom right;
     will-change: transform, opacity;
 }

 #contact-popup.show {
     transform: translateY(0);
     opacity: 1;
     pointer-events: auto;
     visibility: visible;
 }

 #floating-contact-btn {
     backface-visibility: hidden;
     -webkit-font-smoothing: subpixel-antialiased;
 }

 .img-wrap {
     overflow: hidden;
     position: relative;
 }

 .img-wrap img {
     transition: transform 1s ease;
 }

 .img-wrap:hover img {
     transform: scale(1.05);
 }

 .gallery-item {
     transition: opacity 0.4s ease, transform 0.4s ease;
 }

 @media (min-width: 1024px) {

     #gallery-grid:not(.is-filtered) .item-1,
     #gallery-grid:not(.is-filtered) .item-6 {
         grid-column: span 2;
         grid-row: span 1;
     }

     #gallery-grid:not(.is-filtered) .item-2,
     #gallery-grid:not(.is-filtered) .item-3,
     #gallery-grid:not(.is-filtered) .item-4,
     #gallery-grid:not(.is-filtered) .item-5 {
         grid-column: span 1;
         grid-row: span 1;
     }
 }

 #gallery-grid.is-filtered {
     grid-template-columns: repeat(2, minmax(0, 1fr));
     grid-auto-rows: 180px;
 }

 @media (min-width: 768px) {
     #gallery-grid.is-filtered {
         grid-template-columns: repeat(3, minmax(0, 1fr));
     }
 }

 @media (min-width: 1024px) {
     #gallery-grid.is-filtered {
         grid-template-columns: repeat(4, minmax(0, 1fr));
         grid-auto-rows: 280px;
     }
 }

 #gallery-grid.is-filtered .gallery-item {
     grid-column: span 1 !important;
     grid-row: span 1 !important;
 }

 .marquee-container {
     overflow: hidden;
     display: flex;
     white-space: nowrap;
     width: 100%;
     position: relative;
 }

 .marquee-content {
     display: flex;
     animation: scrollMarquee 30s linear infinite;
 }

 .marquee-content:hover {
     animation-play-state: paused;
 }

 @keyframes scrollMarquee {
     0% {
         transform: translateX(0);
     }

     100% {
         transform: translateX(-50%);
     }
 }

 .partner-logo {
     opacity: 0.7;
     filter: brightness(0) invert(1);
     transition: all 0.4s ease;
     font-size: 1rem;
     font-weight: 700;
     text-transform: uppercase;
     letter-spacing: 0.05em;
     display: inline-flex;
     align-items: center;
     gap: 0.5rem;
     padding: 0 2rem;
     color: white;
     cursor: pointer;
 }

 @media (min-width: 768px) {
     .partner-logo {
         font-size: 1.25rem;
         padding: 0 3.5rem;
     }
 }

 .partner-logo:hover {
     opacity: 1;
     filter: none;
     color: white;
 }

 .no-scrollbar::-webkit-scrollbar {
     display: none;
 }

 .no-scrollbar {
     -ms-overflow-style: none;
     scrollbar-width: none;
 }

 .fancybox__backdrop {
     background: rgba(42, 42, 42, 0.8) !important;
     backdrop-filter: blur(10px) !important;
     -webkit-backdrop-filter: blur(10px) !important;
 }

 .cat-filter-btn,
 .media-filter-btn {
     transition: all 0.3s ease;
     white-space: normal;
     display: flex;
     align-items: center;
     justify-content: center;
     text-align: center;
     min-height: 44px;
     word-break: break-word;
 }

 @media (max-width: 767px) {
     #category-filters button:last-child {
         grid-column: span 2;
     }

     #media-filters {
         grid-template-columns: repeat(3, 1fr);
     }

     .cat-filter-btn,
     .media-filter-btn {
         font-size: 11px !important;
         padding: 2px 10px !important;
         min-height: 34px !important;
         line-height: 1;
         white-space: nowrap;
     }

     .gallery-item span.bg-dark\/70 {
         font-size: 10px !important;
         padding: 6px 12px !important;
         white-space: normal !important;
         max-width: 75%;
         display: inline-block;
         text-align: center;
         line-height: 1.3;
         letter-spacing: 0.02em !important;
     }

     #portfolio-gallery .mt-8 a {
         padding: 10px 20px !important;
         font-size: 10px !important;
         gap: 8px !important;
     }
 }


 .gallery-item {
     transition: opacity 0.4s ease, transform 0.4s ease;
 }

 #gallery-grid:not(.is-filtered).home-limit .gallery-item:nth-child(n+7) {
     display: none;
 }
 

 /* =========================================
   1. CUSTOM SCROLLBARS FOR SERVICE CARDS
========================================= */
.desc-wrapper {
    overflow-y: hidden;
}

.desc-wrapper::-webkit-scrollbar {
    width: 4px;
}

.desc-wrapper::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 4px;
}

.desc-wrapper::-webkit-scrollbar-thumb {
    background-color: #D4A373;
    border-radius: 4px;
}

@media (min-width: 768px) {
    .group:hover .desc-wrapper {
        overflow-y: hidden !important;
    }
}

@media (max-width: 767px) {
    .group:hover .desc-wrapper {
        overflow-y: auto !important;
    }
}