/*------------------------------------------------------------------
[Main Stylesheet]

Project     :  Porthe - A Creative Agency & Portfolio Template
Version     :  1.0.0
Primary Use :  Creative Agency & Portfolio
Updated By  :  ThemesTrace
-------------------------------------------------------------------*/

/*------------------------------------------------------------------
[Table of contents]

01. Body / Typography
02. Button
03. Light/Dark Mode
04. Header
05. Mobile Menu
06. Branding Studio
07. About
08. Homepage
09. Blog
10. Jumborton
11. Portfolio
12. Team
13. Service
14. Gallery
15. Mobile Bottom Menu

-------------------------------------------------------------------*/

/*------------------------------------------------------------------
[Color codes]

# Dark: #01024e
# Grey: #c7c7c7
# Primary Color: #ff6464
# */

/*------------------------------------------------------------------
[Typography]

Body            :   18px font-family: 'Nunito', sans-serif;
Headers         :   'Lora', serif;
Input, textarea :   'Nunito', sans-serif;
Sidebar heading :   'Quicksand', sans-serif;

-------------------------------------------------------------------*/

/*
01. Body / Typography
==========================================================
*/

@import url('https://fonts.googleapis.com/css2?family=Anton&family=Figtree:ital,wght@0,300..900;1,300..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

html {
    scroll-behavior: smooth;
}

body,
p,
h1,
h2,
h3,
h4,
h5,
h6 {
    transition: background 0.5s ease, color 0.5s ease;
}

body {
    font-family: "Poppins", serif;
    font-weight: 400;
    font-style: normal;
}

h1,
h3,
h4,
h5 {
    font-family: "Anton", sans-serif;
    font-weight: 400;
    font-style: normal;
}

a {
    text-decoration: none;
    outline: none;
}

::selection {
    background: rgba(67, 45, 215, .7);
    color: #FFF;
}

.font-anton {
    font-family: "Anton", sans-serif;
}

.font-poppins {
    font-family: "Poppins", serif;
    font-style: normal;
}

.font-figtree {
    font-family: "Figtree", sans-serif;
    font-optical-sizing: auto;
}

.word {
  display: inline-block;
  margin-right: 6px;
}

.line {
  display: block;
}

.porthe-large-text {
    line-height: 1;
    overflow: hidden;
}

.porthe-large-text .char,
.jumborton-stagger .char {
    display: inline-block;
    overflow: hidden;
}

.porthe-large-text .char-inner,
.jumborton-stagger .char-inner {
    display: inline-block;
}

.porthe-blur-bottom {
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    -webkit-mask: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, black 100%) add;
    mask: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, black 100%) add;
}






/*
02. Button
==========================================================
*/


.link {
    cursor: pointer;
    position: relative;
    white-space: nowrap;
}

.link::before,
.link::after {
    position: absolute;
    width: 100%;
    height: 1px;
    top: 100%;
    left: 0;
    pointer-events: none;
}

.link::before {
    content: "";
}

.link--iocaste {
    overflow: hidden;
}

.link__graphic {
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
    fill: none;
    stroke-width: 1px;
}

.link__graphic--slide {
    top: -3px;
    stroke-width: 2px;
    transition: transform 0.7s;
    transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1);
}

.link:hover .link__graphic--slide {
    transform: translate3d(-66.6%, 0, 0);
}

.text-stroke {
    color: transparent;
    -webkit-text-stroke: 2px black;
}

.porthe-btn-pill {
    overflow: hidden;
    transition: all ease 0.5s;
}

.porthe-btn-pill i {
    transform: rotate(-45deg);
    transition: all ease 0.5s;
}

.icon-second i {
    position: absolute;
    visibility: hidden;
    opacity: 0;
    transform: rotate(-45deg) translate(-53px, -13px);
}

.porthe-btn-pill:hover .icon-first i {
    transform: rotate(-45deg) translateX(35px);
    visibility: hidden;
    opacity: 0;
}

.porthe-btn-pill:hover .icon-second i {
    transform: rotate(-45deg) translate(-12px, -8px);
    visibility: visible;
    opacity: 1;
}





/*
03. Light/Dark Mode
==========================================================
*/

.theme-change {
  transition: transform 0.4s ease;
}

.theme-change.rotate-active {
  transform: rotate(180deg);
}





/*
04. Header
==========================================================
*/

.menu-open {
  overflow: hidden;
}

#menuImageWrap {
  transform: translate(-50%, -50%);
}

.themestrace-header {
    -webkit-transition: all 0.3s ease-in;
    -o-transition: all 0.3s ease-in;
    transition: all 0.3s ease-in;
}

.header-v1 {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1;
}

.mega-menu,
.dropdown-menu {
    right: 0;
    padding-top: 0;
    position: absolute;
    background-color: #fff;
    visibility: hidden;
    opacity: 0;
    display: block;
    top: 100%;
    -webkit-transform: translateY(20px);
    -ms-transform: translateY(20px);
    transform: translateY(20px);
    -webkit-transition: all 0.3s ease-in;
    -o-transition: all 0.3s ease-in;
    transition: all 0.3s ease-in;
    border-radius: 10px;
    box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.04);
}

.dark .mega-menu,
.dark .dropdown-menu {
    background-color: #121212;
}

.mega-menu {
    left: 0;
}

.dark .mega-menu h2 {
    color: #FFF;
}

.dropdown-menu {
    margin: 0;
    padding: 20px;
    list-style: none;
    width: max-content;
    min-width: 200px;
    left: -50px;
}

.dropdown-menu li a,
.mega-menu-col li a {
    font-size: 14px;
    padding: 8px;
    display: block;
    color: rgba(0, 0, 0, 0.8);
    -webkit-transition: all 0.3s ease-in;
    -o-transition: all 0.3s ease-in;
    transition: all 0.3s ease-in;
}

.dark .dropdown-menu li a,
.dark .mega-menu-col li a {
    color: rgba(255, 255, 255, 0.8);
}

.dark-mega-menu-item {
    border-radius: 0 10px 10px 0;
}

.dropdown-menu li:hover a,
.mega-menu-col li:hover a {
    background: rgba(0, 0, 0, 0.04);
    border-radius: 5px;
    color: #000;
}

.dark .dropdown-menu li:hover a,
.dark .mega-menu-col li:hover a {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
}

.mega-drop-down:hover .mega-menu,
.dropdown:hover .dropdown-menu {
    visibility: visible;
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
}

/* Desktop Hamburger menu */

.themestrace-hamburger-menu {
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    width: 50%;
}

.themestrace-hamburger-menu.menu-open {
    z-index: 10;
}

.themestrace-hamburger-menu .hamburger-bg {
    inset: 0;
    border-radius: 20px;
    clip-path: circle(0% at calc(100% - 45px) 45px);
    transition: clip-path .6s ease-in-out;
    right: 0;
    width: 50%;
    margin: 20px;
    position: fixed;
    right: 0;
    left: auto;
    z-index: 2;
    backdrop-filter: blur(50px);
    box-shadow: 0 20px 30px -8px rgba(19, 19, 22, 0.1);
}

.close-hamburger-menu {
    top: 40px;
    right: 40px;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease-in-out;
}

.themestrace-hamburger-menu.is-transition .hamburger-bg {
    clip-path: circle(150% at calc(100% - 45px) 45px);
}

.themestrace-hamburger-menu.is-transition .close-hamburger-menu {
    opacity: 1;
    visibility: visible;
    top: 50px;
}

.themestrace-hamburger-menu-wrap {
    position: relative;
    z-index: 2;
    padding: 100px;

}

.themestrace-hamburger-menu-wrap-inner {
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    animation-delay: 1s;
    transition: all 0.3s ease-in-out;
}

.themestrace-hamburger-menu-wrap-inner nav,
.themestrace-hamburger-menu-wrap-inner .collapse-content ul {
    max-height: 500px;
    overflow-y: auto;
    scrollbar-width: none;
}

.themestrace-hamburger-menu-wrap-inner .collapse-content ul li {
    position: relative;
    overflow: hidden;

}

.themestrace-hamburger-menu.is-transition .themestrace-hamburger-menu-wrap-inner {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition-delay: calc(0.7s + 0.06s);
}

.hamburger-menu-icon-wrapper {
    opacity: 0;
    visibility: hidden;
    transform: scale(.5);
    mix-blend-mode: difference;
    transition: all 0.3s ease-in-out;
}

.hamburger-menu-icon-wrapper.active {
    opacity: 1;
    visibility: visible;
    transform: scale(1);
}

.hamburger-menu-icon span {
    background: #FFF;
    width: 25px;
    height: 2px;
    display: inline-block;
}

.themestrace-flat-menu #menuBg {
    background: radial-gradient(circle at 40% 50%, #4b3ae0 0%, transparent 55%),
            radial-gradient(circle at 80% 80%, #2a1fb8 0%, transparent 60%),
            #0d0c25;
    filter: blur(20px);
    backdrop-filter: blur(30px);
}

.themestrace-flat-menu nav {
    max-height: 730px;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: 0;
}

.menu-line-wrapper {
    mix-blend-mode: difference;
}

.menu-line {
    background: #FFF;
    width: 55px;
    height: 2px;
    display: inline-block;
    transition: background-color 0.4s ease, transform cubic-bezier(0.22, 1, 0.36, 1) .3s;
}

.menu-line-wrapper.active .menu-line:nth-child(1) {
    transform: translateY(4px) rotate(45deg);
}

.menu-line-wrapper.active .menu-line:nth-child(2) {
    transform: translateY(-4px) rotate(-45deg);
}



/*
05. Mobile Menu
==========================================================
*/

.mobile-header-menu-wrapper .collapse-title,
.mobile-header-menu-wrapper .collapse-subtitle,
.mobile-header-menu-wrapper .collapse-menu {
    overflow: hidden;
}

.mobile-header-menu-wrapper .collapse-title:after {
    transition: top 0.5s;
    transition-delay: 0.3s;
    top: 106%;
}

.mobile-header-menu-wrapper .collapse-title .collapse-title-inner,
.mobile-header-menu-wrapper .collapse-subtitle .collapse-subtitle-inner,
.mobile-header-menu-wrapper .collapse-menu-inner {
    transform: translateY(115%);
    transition: transform 0.5s;
    transition-delay: 0.3s;
}

.mobile-header-menu-wrapper .collapse-menu-inner {
    display: inline-block;
}

.mobile-header-menu-wrapper .logo,
.mobile-header-menu-wrapper .social-area ul,
.mobile-header-menu-wrapper .support p,
.mobile-header-menu-wrapper .support a,
.mobile-header-menu-wrapper .connect-on-linkedin {
    transform: translateY(105%);
    transition: transform 0.5s;
    transition-delay: 0.3s;
}

.is-transition.mobile-header-menu-wrapper .collapse-title-inner,
.is-transition.mobile-header-menu-wrapper .collapse-subtitle .collapse-subtitle-inner,
.is-transition.mobile-header-menu-wrapper .collapse-menu-inner,
.is-transition.mobile-header-menu-wrapper .logo,
.is-transition.mobile-header-menu-wrapper .social-area ul,
.is-transition.mobile-header-menu-wrapper .support p,
.is-transition.mobile-header-menu-wrapper .support a,
.is-transition.mobile-header-menu-wrapper .connect-on-linkedin {
    transform: translateY(0);
}

.is-transition.mobile-header-menu-wrapper .collapse-title:after {
    top: 50%;
}

.mobile-header-menu-wrapper .collapse-title:after {
    right: 10px;
}

.mobile-header-menu-wrapper {
    transform: translateX(-100%);
    -webkit-transition: all 0.3s ease-in;
    -o-transition: all 0.3s ease-in;
    transition: all 0.3s ease-in;
}

.mobile-header-menu-wrapper.is-open {
    transform: translateX(0%);
}

.mobile-header-menu-wrapper nav {
    max-height: 500px;
    overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  touch-action: auto;
}






/*
06. Branding Studio
==========================================================
*/


.branding-studio-banner {
    position: relative;
    background: #0f0c29;
    overflow: hidden;
}

.gradient {
    position: absolute;
    inset: -20%;
    filter: blur(80px);
    pointer-events: none;
}

.gradient-1 {
    background: radial-gradient(circle at 30% 40%, #6d5dfc 0%, transparent 50%);
}

.gradient-2 {
    background: radial-gradient(circle at 70% 60%, #432dd7 0%, transparent 60%);
}

.single-portfolio-image video,
.aitech-agency-banner video {
    width: 100%;
}






/*
07. About
==========================================================
*/

.about-image-target {
    width: 100%;
    height: 100%;

}

.about-bottom-img img {
    height: 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-100%);
    transition:
        all 0.65s cubic-bezier(0.4, 0, 0.2, 1);
}

.about-section:hover .about-bottom-img img {
    transform: translateY(-0%);
    height: 100px;
    opacity: 1;
    visibility: visible;
}




/*
08. Homepage
==========================================================
*/

.banner-left h1,
.banner-right,
.single-featured-project-content p,
.single-featured-project-content h4 {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
}

.based-on,
.based-on .location {
    clip-path: polygon(100% 0, 100% 100%, 0 100%, 0 0);
}

.banner-left .char,
.banner-right p,
.banner-right ul {
    transform: translateY(115px);
    transition: transform 0.5s;
}

.based-on i,
.based-on .location p {
    transform: translateX(-105%);
    transition: transform 0.5s;
}

.among-our-client li:not(:first-child) {
    margin-left: -20px;
}

.among-our-client li span,
.among-our-client li img {
    width: 70px;
    height: 70px;
    border-radius: 50%;
}

.among-our-client li img {
    object-fit: cover;
}

.among-our-client li span {
    background-color: transparent;
    backdrop-filter: blur(100px);
}

.project-v1-slider {
    width: 100%;
    height: 700px;
}

.swiper-wrapper {
    transition-timing-function: linear !important;
}

.top-curve,
.bottom-curve {
    position: absolute;
    left: -100px;
    right: -100px;
    height: 5vw;
    z-index: 3;
    background-color: #fff;
}

.top-curve {
    top: 0;
    border-radius: 0 0 50% 50%/0 0 100% 100%;
}

.bottom-curve {
    bottom: 0;
    border-radius: 50% 50% 0 0/100% 100% 0 0;
}

.projects-v1 {
    transition:
        transform 0.5s,
        opacity 0.5s;
}

.top-slice-corner {
    --p: 50px;
    height: 60px;
    aspect-ratio: 1;
    clip-path: polygon(0 0, 100% var(--p), 100% 100%, 0 100%);
    transform: rotate(180deg);
    background: #fff;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.single-service-img {
    position: relative;
}

.single-service-img:before {
    width: 180px;
    height: 180px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    content: "";
    position: absolute;
    border-radius: 50%;
    left: 0;
    top: 0;
    z-index: -1;
}

.project-tag,
.project-title {
    transform: translateY(105%);
    transition: transform 0.5s ease;
}

.single-featured-project:hover .project-tag,
.single-featured-project:hover .project-title {
    transform: translateY(0);
}

.google-map iframe {
    filter: grayscale(90%);
}

/* Testimonial */
.social-star .brand {
    position: relative;
}

.social-star .brand:before {
    position: absolute;
    content: "";
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 60%;
    background-color: rgba(0, 0, 0, 0.6);
}

.client-testimonial-v1 {
    width: 100%;
    height: auto;
}

.client-testimonial-v1-slide {
    align-items: center;
    margin-top: 50px;
    padding: 40px;
    border-radius: 20px;
    transition: all 0.5s ease;
    filter: blur(10px);
    opacity: 0.6;
    transform: scale(0.9);
    transition: 
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.5s ease,
    opacity 0.5s ease;
}


/* Active (center) slide */
.client-testimonial-v1-slide.swiper-slide-active {
  filter: blur(0);
  opacity: 1;
  transform: scale(1) translateY(0);
  z-index: 2;
}

.client-testimonial-v1 .swiper-button-next {
    right: 0;
}

.client-testimonial-v1 .swiper-button-prev {
    right: 80px;
}

.client-testimonial-v1 .swiper-button-next,
.client-testimonial-v1 .swiper-button-prev {
    color: #000;
    position: absolute;
    top: 0;
    align-items: flex-start;
    left: auto;
    z-index: 999;
    padding-top: 35px;
}

.client-testimonial-v1 .swiper-button-next:after,
.client-testimonial-v1 .swiper-button-prev:after {
    display: none;
}


/*
09. Blog
==========================================================
*/

.blog-article-slider .swiper-button-next,
.blog-article-slider .swiper-button-prev {
    width: 50px;
    height: 50px;
}

.blog-article-slider .swiper-button-next:after,
.blog-article-slider .swiper-button-prev:after {
    color: #fff;
    background-color: #432dd7;
    font-size: 22px;
    border-radius: 50px;
    line-height: 50px;
    width: 50px;
    height: 50px;
    text-align: center;
}

.pagination ul li {
    border: 1px solid rgba(0, 0, 0, 0.1);
    padding: 10px;
    border-radius: 50px;
    width: 50px;
    height: 50px;
    text-align: center;
    line-height: 30px;
    font-weight: 500;
    cursor: pointer;
}

.dark .pagination ul li {
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #FFF;
}

.pagination ul li.current {
    background-color: #432dd7;
    border: 1px solid #432dd7;
    color: #fff;
}

.dark .pagination ul li.current {
    background-color: #fff;
    border: 1px solid #fff;
    color: #000;
}



/*
10. Jumborton
==========================================================
*/

.themestrace-jumborton.is-bg-pattern {
    background-color: #f8f8f8;
    background-image: url("data:image/svg+xml,%3Csvg width='120' height='120' viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 0h2v20H9V0zm25.134.84l1.732 1-10 17.32-1.732-1 10-17.32zm-20 20l1.732 1-10 17.32-1.732-1 10-17.32zM58.16 4.134l1 1.732-17.32 10-1-1.732 17.32-10zm-40 40l1 1.732-17.32 10-1-1.732 17.32-10zM80 9v2H60V9h20zM20 69v2H0v-2h20zm79.32-55l-1 1.732-17.32-10L82 4l17.32 10zm-80 80l-1 1.732-17.32-10L2 84l17.32 10zm96.546-75.84l-1.732 1-10-17.32 1.732-1 10 17.32zm-100 100l-1.732 1-10-17.32 1.732-1 10 17.32zM38.16 24.134l1 1.732-17.32 10-1-1.732 17.32-10zM60 29v2H40v-2h20zm19.32 5l-1 1.732-17.32-10L62 24l17.32 10zm16.546 4.16l-1.732 1-10-17.32 1.732-1 10 17.32zM111 40h-2V20h2v20zm3.134.84l1.732 1-10 17.32-1.732-1 10-17.32zM40 49v2H20v-2h20zm19.32 5l-1 1.732-17.32-10L42 44l17.32 10zm16.546 4.16l-1.732 1-10-17.32 1.732-1 10 17.32zM91 60h-2V40h2v20zm3.134.84l1.732 1-10 17.32-1.732-1 10-17.32zm24.026 3.294l1 1.732-17.32 10-1-1.732 17.32-10zM39.32 74l-1 1.732-17.32-10L22 64l17.32 10zm16.546 4.16l-1.732 1-10-17.32 1.732-1 10 17.32zM71 80h-2V60h2v20zm3.134.84l1.732 1-10 17.32-1.732-1 10-17.32zm24.026 3.294l1 1.732-17.32 10-1-1.732 17.32-10zM120 89v2h-20v-2h20zm-84.134 9.16l-1.732 1-10-17.32 1.732-1 10 17.32zM51 100h-2V80h2v20zm3.134.84l1.732 1-10 17.32-1.732-1 10-17.32zm24.026 3.294l1 1.732-17.32 10-1-1.732 17.32-10zM100 109v2H80v-2h20zm19.32 5l-1 1.732-17.32-10 1-1.732 17.32 10zM31 120h-2v-20h2v20z' fill='%23060606' fill-opacity='0.02' fill-rule='evenodd'/%3E%3C/svg%3E");
}





/*
11. Portfolio
==========================================================
*/

.double {
    position: relative;
    overflow: hidden;
}

.double__img {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
}

.grid-sizer,
.isotope-item {
    width: 100%;
    box-sizing: border-box;
}

.isotope-item:not(:last-child) {
    margin-bottom: 30px;
}


@media (min-width: 768px) {
    .portfolio-two .grid-sizer,
    .isotope-item.two-cols {
        width: 44%;
        margin-left: 3%;
        margin-right: 3%;
        margin-top: 3%;
        margin-bottom: 3%;
    }

    .portfolio-three .grid-sizer,
    .isotope-item.three-cols {
        width: 29%;
        margin-left: 2%;
        margin-right: 2%;
        margin-top: 2%;
        margin-bottom: 2%;
    }

    .portfolio-four .grid-sizer,
    .isotope-item.four-cols {
        width: 46%;
        margin-left: 2%;
        margin-right: 2%;
        margin-top: 2%;
        margin-bottom: 2%;
    }

    .portfolio-two .isotope-grid {
        margin-left: -3%;
        margin-right: -3%;
    }

    .portfolio-three .isotope-grid {
        margin-left: -2%;
        margin-right: -2%;
    }

    .portfolio-four .isotope-grid {
        margin-left: -1%;
        margin-right: -1%;
    }



}


@media (min-width: 1024px) {
    .portfolio-four .grid-sizer,
    .isotope-item.four-cols {
        width: 46%;
        margin-left: 2%;
        margin-right: 2%;
        margin-top: 2%;
        margin-bottom: 2%;
    }

    .single-scale-out {
        position: relative;
        z-index: 1;
    }

    .design-process-border:before {
        width: 80%;
        height: 1px;
        position: absolute;
        content: '';
        left: 0;
        right: 0;
        margin: auto;
        top: 50px;
    }

    .design-process-border:before {
        background-color: rgba(0, 0, 0, 0.1);
    }

    .dark .design-process-border:before {
        background-color: rgba(255, 255, 255, 0.1);
    }

}

@media (min-width: 1440px) {
    .portfolio-four .grid-sizer,
    .isotope-item.four-cols {
        width: 23%;
        margin-left: 1%;
        margin-right: 1%;
        margin-top: 2%;
        margin-bottom: 2%;
    }

    .pin-section {
        position: relative;
        display: block;
    }

    .pin-content {
        position: relative;
    }

}




/*
12. Team
==========================================================
*/

.team-member-social {
    transform: translateX(-20px);
    opacity: 0;
    transition: all 0.3s ease;
}

.team-designation,
.team-member-name {
    transform: translateY(101%);
    transition: all 0.3s ease;
}

.single-team-member:hover .team-member-social {
    transform: translateX(0);
    opacity: 1
}

.single-team-member:hover .team-designation,
.single-team-member:hover .team-member-name {
    transform: translateY(0);
}






/*
13. Service
==========================================================
*/

.desc-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    margin-top: 0;
    transition:
        grid-template-rows 0.45s cubic-bezier(0.4, 0, 0.2, 1),
        opacity 0.35s ease,
        margin-top 0.45s ease;
}

.service-item:hover .desc-wrapper {
    grid-template-rows: 1fr;
    opacity: 1;
    margin-top: 0.65rem;
}

.desc-inner { 
    overflow: hidden; 
}

.service-item::before {
    content: '';
    position: absolute;
    left: 0; 
    top: 0;
    width: 0; 
    height: 1px;
    background: #000;
    transition: width 0.55s cubic-bezier(0.4, 0, 0.2, 1);
}

.dark .service-item::before {
    background: #FFF;
}

.service-item:hover::before { 
    width: 100%; 
}

.arrow-icon {
    opacity: 0;
    transform: translateX(-8px) translateY(8px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.service-item:hover .arrow-icon {
    opacity: 1;
    transform: translateX(0) translateY(0);
}

.service-tag, .service-num {
    transition: color 0.4s ease;
}

.service-item:hover .service-tag,
.service-item:hover .service-num { 
    color: #000; 
}

.dark .service-item:hover .service-tag,
.dark .service-item:hover .service-num { 
    color: #FFF; 
}

.service-title { 
    transition: color 0.4s ease;
    color: rgba(0, 0, 0, 0.4); 
}

.dark .service-title {
    color: rgba(255, 255, 255, 0.4); 
}

.service-item.prev .service-title {
    color: #000; 
}

.dark .service-item.prev .service-title {
    color: #FFF; 
}

.service-item.active .service-title {
    color: #000; 
}

.dark .service-item.active .service-title {
    color: #FFF; 
}

.img-panel {
    position: absolute;
    inset: 0;
    opacity: 0;
    transform: scale(1.05);
    transition:
    opacity 0.65s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}

.img-panel.active {
    opacity: 1;
    transform: scale(1);
}

@keyframes fadeUp {
    from { 
        opacity: 0; 
        transform: translateY(18px); 
    }
    to { 
        opacity: 1; 
        transform: translateY(0); 
    }
}

.service-item { 
    animation: fadeUp 0.6s ease forwards; 
    opacity: 0; 
}

.service-item:nth-child(1) { 
    animation-delay: 0.08s; 
}

.service-item:nth-child(2) { 
    animation-delay: 0.18s; 
}

.service-item:nth-child(3) { 
    animation-delay: 0.28s; 
}

.service-item:nth-child(4) { 
    animation-delay: 0.38s; 
}

.service-item:nth-child(5) { 
    animation-delay: 0.48s; 
}

@keyframes cardReveal {
    from { 
        opacity: 0; 
        transform: scale(0.94) translateY(24px); 
    }

    to { 
        opacity: 1; 
        transform: scale(1) translateY(0); 
    }
}
.img-card { 
    animation: cardReveal 1s cubic-bezier(0.4, 0, 0.2, 1) 0.25s both; 
}

.counter-fade {
    transition: opacity 0.3s ease, transform 0.3s ease;
}





/*
14. Gallery
==========================================================
*/

.gallery-section {
    width: 100%;
    overflow: hidden;

}

.marquee-row {
    display: flex;
    gap: 1rem;
    width: max-content;
    will-change: transform;
}

.marquee-row + .marquee-row {
    margin-top: 1rem;
}

.card {
    flex-shrink: 0;
    overflow: hidden;
    position: relative;
}

.card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
    filter: grayscale(15%);
}

.card:hover img {
    transform: scale(1.05);
    filter: grayscale(0%);
}


.card-tall   { width: 400px; height: 500px; }
.card-wide   { width: 400px; height: 300px; }
.card-square { width: 360px; height: 360px; }
.card-sm     { width: 180px; height: 240px; }
.card-lg     { width: 400px; height: 600px; }

.cursor {
  display: inline-block;
  margin-left: 4px;
}

.cursor {
  margin-left: 3px;
  animation: blink 1s infinite;
}

@keyframes blink {
  50% { opacity: 0; }
}

.single-design-process .experience-des {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    margin-top: 0;
    transition: grid-template-rows 0.45s cubic-bezier(0.4, 0, 0.2, 1),
        opacity 0.35s ease,
        margin-top 0.45s ease;
}

.single-design-process:hover .experience-des {
    grid-template-rows: 1fr;
    opacity: 1;
    margin-top: 0.65rem;
}

.floating {
  will-change: transform;
}

.floating:nth-child(1),
.floating:nth-child(4) { 
    filter: blur(1px); 
}

.floating:nth-child(3),
.floating:nth-child(6) { 
    filter: blur(2px); 
}


@media (max-width: 1536px) {
    .themestrace-flat-menu nav {
        max-height: 500px;
    }

    .themestrace-hamburger-menu-wrap {
        padding: 60px;
    }
}



/*
15. Mobile Bottom Menu
==========================================================
*/

@media (max-width: 1023px) {

    .mobile-bottom-menu {
        background-color: #121212;
        padding: 10px 20px;
        text-align: center;
        position: fixed;
        bottom: 10px;
        left: 0;
        right: 0;
        border-radius: 50px;
        width: 96%;
        z-index: 9;
        margin: auto;
        max-width: 410px;
        transition: all ease 0.5s;
    }

    .mobile-bottom-menu-inner {
        display: flex;
        gap: 30px;
        justify-content: space-around;
    }

    .mobile-bottom-menu-inner a,
    .mobile-bottom-menu-inner a:focus,
    .mobile-bottom-menu-inner a:hover {
        color: #fff;
        text-decoration: none;
    }

    .mobile-bottom-menu-inner i {
        font-size: 20px;
    }

    .mobile-bottom-menu.hide {
        bottom: -83px;
    }
}