@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
*{
    padding: 0;
    margin: 0;
    box-sizing: border-box;
    scroll-behavior: smooth;
}
:target{
    scroll-margin-top: 92.83px; /* Increased slightly to ensure section titles are not under fixed nav */
}
:root{
    --cta: #2D6C51; /* Verde Finblow, puoi cambiarlo se vuoi un colore diverso */
    /* Esempio colore alternativo più "fresh" (azzurro/verde acqua): --cta: #00A09A; */
    /* Esempio colore alternativo moderno (blu brillante): --cta: #007AFF; */
    --light-white: #f9f9f9;
    --white: #fff;
    --gray: #888;
    --light-gray: #eee;
    --dark-black: #081828;
    --light-black: #666;
    --footer-text: #D2D6DC;
}
p{
    line-height: 1.7;
}
body{
    height: 100vh;
    overflow: hidden;
    color: var(--gray);
    font-size: 0.9375rem;
    font-family: 'Inter', sans-serif;
    line-height: 1.5;
    position: relative;
}
body.active{
    min-height: 100vh;
    overflow: auto;
}


/* ----------==========preloader==========---------- */


.preloader{
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    background: var(--white);
    z-index: 1000;
}
.preloader__circle{
    position: absolute;
    width: 100px;
    height: 100px;
    background: var(--cta);
    opacity: .5;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -ms-border-radius: 50%;
    -o-border-radius: 50%;
    border-radius: 50%;
    -webkit-transform: scale(0,0);
    -moz-transform: scale(0,0);
    -ms-transform: scale(0,0);
    -o-transform: scale(0,0);
    transform: scale(0,0);
    -webkit-animation: preloader 1.5s linear infinite;
    animation: preloader 1.5s linear infinite;
}
.preloader__circle--two{
    animation-delay: .8s;
}
@keyframes preloader{
    0%{
        opacity: .5;
        -webkit-transform: scale(0,0);
        -moz-transform: scale(0,0);
        -ms-transform: scale(0,0);
        -o-transform: scale(0,0);
        transform: scale(0,0);
    }
    100%{
        opacity: 0;
        -webkit-transform: scale(1,1);
        -moz-transform: scale(1,1);
        -ms-transform: scale(1,1);
        -o-transform: scale(1,1);
        transform: scale(1,1);
    }
}


/* ----------==========scroll-to-top==========---------- */


.go-top{
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    width: 45px;
    height: 45px;
    color: var(--white);
    background: var(--cta);
    text-decoration: none;
    display: none;
    justify-content: center;
    align-items: center;
    -webkit-border-radius: .3rem;
    -moz-border-radius: .3rem;
    -ms-border-radius: .3rem;
    -o-border-radius: .3rem;
    border-radius: .3rem;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;
    z-index: 10;
}
.go-top:hover{
    background: var(--dark-black);
    box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.1);
}


/* ----------==========nav==========---------- */


nav{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: var(--cta);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.5rem .75rem;
    z-index: 100;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;
    transition-delay: .3s;
}
body.scroll-down nav{
    background: var(--white);
    box-shadow: 0px 20px 50px 0px rgb(0 0 0 / 5%);
}
.nav__logo{
    width: 160px;
}
.nav__logo img { /* Ensure logos scale correctly */
    width: 100%;
    height: auto;
}
body.scroll-down .nav__logo-white{
    display: none;
}
.nav__logo-orange{
    display: none;
}
body.scroll-down .nav__logo-orange{
    display: block;
}
.nav__links{
    list-style-type: none;
    position: fixed;
    top: 5rem;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    width: calc(100% - 1.5rem);
    height: 0;
    overflow-y: hidden;
    background: var(--white);
    -webkit-border-radius: .4rem;
    -moz-border-radius: .4rem;
    -ms-border-radius: .4rem;
    -o-border-radius: .4rem;
    border-radius: .4rem;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;
    box-shadow: 0 10px 20px 0 rgba(0, 0, 0, 0.1);
}
.nav__active .nav__links{
    height: auto; /* Adjusted for potentially varying number of links */
    max-height: calc(100vh - 7rem); /* Max height to prevent overflow on small screens */
    overflow-y: auto; /* Changed to auto for scroll if needed */
    padding: 1rem;
}
.nav__links li a{
    display: block;
    color: var(--dark-black);
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    padding: .75rem 1.5rem;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;
    cursor: pointer;
    position: relative;
}
/* Removed ::before for underline effect on mobile, can be too busy */
/*
.nav__links li a::before,
.contact__header--nav a::before,
.blog__header--nav a::before{
    position: absolute;
    content: '';
    left: 50%;
    bottom: -1px;
    width: 0;
    height: 2px;
    background: var(--white);
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;
}
.nav__links li a:hover::before,
.contact__header--nav a:hover::before,
.blog__header--nav a:hover::before{
    left: 0;
    width: 100%;
}
*/
.nav__links li a.active{ /* Ensure specificity */
    color: var(--cta) !important;
}

body.scroll-down .nav__links li a.active { /* For scrolled state on desktop */
    color: var(--cta) !important;
}
/* Special case for home link when not scrolled */
nav:not(.nav__active):not(.scroll-down) .nav__links li a.header-link.active {
    color: var(--white) !important; /* Home active when at top and nav is green */
}


.nav__cta{
    display: none;
}

/* ----------hamburger---------- */

.nav__menu{
    width: 2rem;
    height: 1.375rem;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    position: relative;
}
.nav__menu .hamburger{
    position: absolute;
    right: 0;
    width: 2rem;
    height: 2px;
    background: var(--white);
    -webkit-border-radius: .2rem;
    -moz-border-radius: .2rem;
    -ms-border-radius: .2rem;
    -o-border-radius: .2rem;
    border-radius: .2rem;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;

}
body.scroll-down .hamburger{
    background: var(--dark-black);
}
body.scroll-down .nav__active .hamburger{
    background: transparent;
}
.hamburger::before,.hamburger::after{
    position: absolute;
    content: '';
    left: 0;
    width: 2rem;
    height: 2px;
    background: var(--white);
    -webkit-border-radius: .2rem;
    -moz-border-radius: .2rem;
    -ms-border-radius: .2rem;
    -o-border-radius: .2rem;
    border-radius: .2rem;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;
}
body.scroll-down .hamburger::before,
body.scroll-down .hamburger::after{
    background: var(--dark-black);
}
.hamburger::before{
    -webkit-transform: translateY(-.5rem);
    -moz-transform: translateY(-.5rem);
    -ms-transform: translateY(-.5rem);
    -o-transform: translateY(-.5rem);
    transform: translateY(-.5rem);
}
.hamburger::after{
    -webkit-transform: translateY(.5rem);
    -moz-transform: translateY(.5rem);
    -ms-transform: translateY(.5rem);
    -o-transform: translateY(.5rem);
    transform: translateY(.5rem);
}
.nav__active .hamburger{
    background: transparent;
    -webkit-transform: translateX(-2rem);
    -moz-transform: translateX(-2rem);
    -ms-transform: translateX(-2rem);
    -o-transform: translateX(-2rem);
    transform: translateX(-2rem);
}
.nav__active .hamburger::before{
    background-color: var(--dark-black); /* Hamburger lines should be dark when menu is open */
    -webkit-transform: rotate(45deg) translate(1.5rem, -1.5rem);
    -moz-transform: rotate(45deg) translate(1.5rem, -1.5rem);
    -ms-transform: rotate(45deg) translate(1.5rem, -1.5rem);
    -o-transform: rotate(45deg) translate(1.5rem, -1.5rem);
    transform: rotate(45deg) translate(1.5rem, -1.5rem);
}
.nav__active .hamburger::after{
    background-color: var(--dark-black); /* Hamburger lines should be dark when menu is open */
    -webkit-transform: rotate(-45deg) translate(1.5rem, 1.5rem);
    -moz-transform: rotate(-45deg) translate(1.5rem, 1.5rem);
    -ms-transform: rotate(-45deg) translate(1.5rem, 1.5rem);
    -o-transform: rotate(-45deg) translate(1.5rem, 1.5rem);
    transform: rotate(-45deg) translate(1.5rem, 1.5rem);
}


/* ----------==========header==========---------- */


header{
    color: var(--white);
    background: var(--cta);
    font-size: 0.875rem;
    display: flex;
    flex-direction: column;
    text-align: center;
    gap: 2.5rem;
    padding: 7.5rem 1.5rem 3rem 1.5rem;
}
.header__text h1{
    color: var(--white);
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1.35;
    text-shadow: 0 3px 8px #00000017;
    transition-delay: .3s;
}
.header__text p{
    margin: 1rem 0 2.5rem 0;
    transition-delay: .45s;
}
.header__img,.overview-flex__img{
    width: 100%;
}
.header__img img,.overview-flex__img img{
    width: 100%;
    height: auto; /* Added for aspect ratio */
}
.header__img img{
    transition-delay: .5s;
}
.header__text-link.fadeFromLeft{
    transition-delay: .7s;
}
.header__text-link,
.install__link{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
}
.header__text-link a,
.install__link a{
    color: var(--white);
    background: transparent;
    font-weight: 500;
    text-decoration: none;
    width: auto; /* Make width flexible */
    min-width: 11rem; /* Keep a minimum width */
    padding: .75rem 1.5rem; /* Add horizontal padding */
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .5rem;
    border: 2px solid var(--white);
    -webkit-border-radius: .4rem;
    -moz-border-radius: .4rem;
    -ms-border-radius: .4rem;
    -o-border-radius: .4rem;
    border-radius: .4rem;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;
}
.header__text-link a:hover,
.install__link a:hover{
    color: var(--cta);
    background: var(--white);
    box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.1);
}
.header__text-link a:first-child,
.install__link a:first-child{
    color: var(--cta);
    background: var(--white);
}
.header__text-link a:first-child:hover,
.install__link a:first-child:hover{
    color: var(--white);
    background: var(--dark-black);
    border: 2px solid var(--dark-black);
}
.header__text-link a i,
.install__link a i{
    font-size: 1.125rem;
}


/* ----------==========features==========---------- */


.features,
.pricing,
.testimonial,
.blogs{ /* .blogs non è usato in queste pagine, ma lo lascio per coerenza */
    background: var(--light-white);
    padding: 3rem .75rem;
}
.features__text,
.contact__text{
    font-size: 0.875rem;
    text-align: center;
    padding: 0 .5rem;
    margin-bottom: 5rem;
}
.features__text h3,
.pricing__text h3,
.team__text h3,
.faq__text h3,
/* .blogs__text h3, */ /* .blogs non è usato */
.contact__text h3{
    color: var(--cta);
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    transition-delay: .2s;
}
.features__text h2,
.pricing__text h2,
.team__text h2,
.faq__text h2,
/* .blogs__text h2, */ /* .blogs non è usato */
.contact__text h2{
    color: var(--dark-black);
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.35;
    padding: .5rem 1rem 1rem 1rem;
    transition-delay: .4s;
}
.features__text p,
.pricing__text p,
.team__text p,
.faq__text p,
/* .blogs__text p, */ /* .blogs non è usato */
.contact__text p{
    transition-delay: .55s;
}
.features__grid{
    display: grid;
    justify-content: center;
    grid-template-columns: repeat(auto-fill, minmax(296px, 1fr)); /* Adjusted for better responsiveness */
    gap: 2rem;
}
.features__grid .feature{
    background: var(--white);
    padding: 2rem;
    border: 1px solid var(--light-gray);
    -webkit-border-radius: .4rem;
    -moz-border-radius: .4rem;
    -ms-border-radius: .4rem;
    -o-border-radius: .4rem;
    border-radius: .4rem;
}
.feature:hover{
    -webkit-animation: moveTop .3s cubic-bezier(.68,-.55,.27,1.55) forwards;
    animation: moveTop .3s cubic-bezier(.68,-.55,.27,1.55) forwards;
}
@keyframes moveTop{
    0%{
        box-shadow: none;
        -webkit-transform: translateY(0);
        -moz-transform: translateY(0);
        -ms-transform: translateY(0);
        -o-transform: translateY(0);
        transform: translateY(0);
    }
    100%{
        box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.1);
        -webkit-transform: translateY(-5px);
        -moz-transform: translateY(-5px);
        -ms-transform: translateY(-5px);
        -o-transform: translateY(-5px);
        transform: translateY(-5px);
}
}
.feature:nth-child(1){transition-delay: .75s;}
.feature:nth-child(2){transition-delay: .8s;}
.feature:nth-child(3){transition-delay: .85s;}
.feature:nth-child(4){transition-delay: .9s;}
.feature:nth-child(5){transition-delay: .95s;}
.feature:nth-child(6){transition-delay: 1s;}
.feature__icon,
.overview-flex__text-icon{
    width: 60px;
    height: 60px;
    color: var(--white);
    background: var(--cta);
    font-size: 1.25rem;
    display: flex;
    justify-content: center;
    align-items: center;
    -webkit-border-radius: .4rem;
    -moz-border-radius: .4rem;
    -ms-border-radius: .4rem;
    -o-border-radius: .4rem;
    border-radius: .4rem;
}
.feature h3{
    color: var(--dark-black);
    font-size: 1.125rem;
    font-weight: 500;
    margin: 1.5rem 0 1rem 0;
}


/* ----------==========overview==========---------- */


.overview{
    padding-top: 3rem;
}
.overview-flex{
    display: flex;
    flex-direction: column;
    margin-bottom: 3rem;
    padding: 0 .75rem;
}
.overview-flex.fadeFromTop{
    transition-delay: .4s;
}
.overview-flex__text{
    transition-delay: 1s;
}
.overview-flex__text h2{
    color: var(--dark-black);
    font-size: 1.25rem;
    font-weight: 700;
    margin: 1.5rem 0 1rem 0;
}
.overview-flex__text-link{
    display: block;
    width: max-content;
    color: var(--white);
    background: var(--cta);
    font-size: 0.875rem;
    font-weight: 500;
    text-decoration: none;
    padding: .75rem 1.5rem;
    margin: 2rem 0;
    -webkit-border-radius: .4rem;
    -moz-border-radius: .4rem;
    -ms-border-radius: .4rem;
    -o-border-radius: .4rem;
    border-radius: .4rem;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;
}
.overview-flex__text-link:hover{
    background: var(--dark-black);
    box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.1);
}
.overview-flex__img{
    padding: 1.5rem 3rem;
    transition-delay: 1s;
}
.overview-flex-two{
    gap: 5rem;
    flex-direction: column-reverse;
}

.overview__facts{
    color: var(--white);
    background: var(--cta);
    text-align: center;
    padding: 3rem .75rem;
}
.overview__facts h2{
    font-size: 1.5rem;
    transition-delay: .4s;
}
.overview__facts>p{
    margin: .6rem 0 2rem 0;
    transition-delay: .55s;
}
.fact-flex{
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
.fact-flex.fadeFromTop{
    transition-delay: .7s;
}
.fact-flex__column{
    display: flex;
    flex-direction: column;
}
.fact-flex__column h3{
    font-size: 1.75rem;
    font-weight: 800;
}
.fact-flex__column p{
    font-weight: 500;
}


/* ----------==========pricing==========---------- */


.pricing{
    font-size: 0.875rem;
}
.pricing__text{
    text-align: center;
    padding: 0 .5rem;
}
.pricing__text h2{
    padding: .5rem 0 1.5rem 0;
}

.pricing__grid{
    display: grid;
    justify-content: center;
    grid-template-columns: repeat(auto-fill, minmax(296px, 1fr)); /* Adjusted for better responsiveness */
    gap: 2rem;
    margin-top: 3rem;
}

.pricing__grid .price-menu{
    background: var(--white);
    border: 1px solid var(--light-gray);
    -webkit-border-radius: .6rem;
    -moz-border-radius: .6rem;
    -ms-border-radius: .6rem;
    -o-border-radius: .6rem;
    border-radius: .6rem;
    padding: 1.5rem;
    display: flex; /* Added for equal height */
    flex-direction: column; /* Added for equal height */
    /* Rimuovi o commenta la riga seguente */
    /* margin-top: auto; */ /* Rimosso: ora il margine automatico va al bottone */
}

.price-menu .price-menu__btn { /* Push the button to the bottom */
    margin-top: auto;
}

/*
.pricing__grid .price-menu{
    background: var(--white);
    border: 1px solid var(--light-gray);
    -webkit-border-radius: .6rem;
    -moz-border-radius: .6rem;
    -ms-border-radius: .6rem;
    -o-border-radius: .6rem;
    border-radius: .6rem;
    padding: 1.5rem;
    display: flex; 
    flex-direction: column; 
}

.price-menu > *:last-child { 
    margin-top: auto;
}
*/
.price-menu:hover{
    -webkit-animation: moveTop .3s cubic-bezier(.68,-.55,.27,1.55) forwards;
    animation: moveTop .3s cubic-bezier(.68,-.55,.27,1.55) forwards;
}
.price-menu:nth-child(1){transition-delay: .75s;}
.price-menu:nth-child(2){transition-delay: .8s;}
.price-menu:nth-child(3){transition-delay: .85s;}
.price-menu:nth-child(4){transition-delay: .9s;}

.price-menu__type{
    color: var(--dark-black);
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 1.25rem;
}
.price-menu__price{
    margin: 1.5rem 0;
}
.price-menu__price h2{
    display: inline-block;
    color: var(--dark-black);
    font-size: 1.875rem;
    font-weight: 700;
}
.price-menu__btn{
    width: 100%;
    color: var(--white);
    background: var(--dark-black);
    font-size: 0.813rem;
    font-weight: 500;
    font-family: 'Inter', sans-serif;
    border: none;
    padding: .9rem 0;
    -webkit-border-radius: .4rem;
    -moz-border-radius: .4rem;
    -ms-border-radius: .4rem;
    -o-border-radius: .4rem;
    border-radius: .4rem;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;
    cursor: pointer;
}
.price-menu__btn:hover{
    background: var(--cta);
    box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.1);
}
.price-menu__btn:active{
    -webkit-transform: translateY(5px);
    -moz-transform: translateY(5px);
    -ms-transform: translateY(5px);
    -o-transform: translateY(5px);
    transform: translateY(5px);
}
.price-menu hr{
    display: block;
    height: 1px;
    border: 0;
    border-top: .5px solid var(--light-gray);
    margin: 1.5rem -1.5rem;
}
.price-menu__included{
    color: var(--dark-black);
    font-size: 0.813rem;
    font-weight: 500;
    text-transform: uppercase;
    margin-bottom: 1.5rem;
}
.price-menu__list{
    list-style-type: none;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.price-menu__list li{
    display: flex;
    align-items: flex-start; /* Align to top for multi-line items */
    gap: .65rem;
}
.price-menu__list li i{
    color: var(--cta);
    margin-top: 0.2em; /* Align icon with first line of text */
}


/* ----------==========team==========---------- */


.team{
    font-size: 0.875rem;
    padding: 3rem .75rem;
}
.team__text{
    text-align: center;
    padding: 0 .5rem 1rem .5rem;
}
.team__grid{
    display: grid;
    justify-content: center;
    grid-template-columns: repeat(auto-fill,minmax(296px, 1fr)); /* Adjusted */
    gap: 1.5rem;
    margin-top: 3rem;
}
.team__grid .stuff{
    text-align: center;
    border: 1px solid var(--light-gray);
    -webkit-border-radius: .6rem;
    -moz-border-radius: .6rem;
    -ms-border-radius: .6rem;
    -o-border-radius: .6rem;
    border-radius: .6rem;
    overflow: hidden;
}
.stuff:hover{
    -webkit-animation: moveTop .3s cubic-bezier(.68,-.55,.27,1.55) forwards;
    animation: moveTop .3s cubic-bezier(.68,-.55,.27,1.55) forwards;
}
.stuff:nth-child(1){transition-delay: .75s;}
.stuff:nth-child(2){ transition-delay: .8s;}
.stuff:nth-child(3){transition-delay: .85s;}

.stuff__img{
    width: 100%;
}
.stuff__img img{
    width: 100%;
    height: auto; /* Added for aspect ratio */
}
.stuff__info--name h3{
    color: var(--dark-black);
    font-size: 1.063rem;
    font-weight: 600;
    margin: 1.5rem 0 .2rem 0;
}
.stuff__info--name h5{
    color: var(--cta);
    font-size: 0.875rem;
    font-weight: 400;
}
.stuff__info--links{
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    margin: 1rem 0 2rem 0;
}
.stuff__info--links a{
    color: var(--light-black);
    font-size: 1rem;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;
}
.stuff__info--links a:hover{
    color: var(--cta);
}


/* ----------==========testimonial-slider==========---------- */


.testimonial__pattern{
    display: none;
}
.swiper1{
    width: 100%;
    max-width: 550px;
    height: auto; /* Adjusted for dynamic content height */
    min-height: 360px; /* Maintain a minimum height */
    margin: 0 auto;
    overflow: hidden;
    position: relative;
}
.swiper1 .swiper-wrapper{
    min-width: 100% !important;
    align-items: stretch; /* Ensure slides have same height in some modes */
}
.swiper-wrapper .slide{
    max-width: 330px !important;
    flex-direction: column;
    text-align: center;
    padding: 0 .75rem;
    height: auto; /* Allow slide height to adjust */
    display: flex; /* For centering content */
    justify-content: center; /* For centering content */
}
.slide img{
    display: block;
    width: 140px;
    height: auto; /* Added for aspect ratio */
    margin: 0 auto;
}
.slide q{
    display: block;
    color: var(--dark-black);
    font-size: 0.9375rem;
    font-weight: 500;
    margin: 2rem 0;
    flex-grow: 1; /* Allow quote to take available space */
}
.slide__profile img{
    width: 50px;
    height: 50px;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -ms-border-radius: 50%;
    -o-border-radius: 50%;
    border-radius: 50%;
}
.slide__profile h4{
    color: var(--dark-black);
    font-weight: 500;
    margin-top: .5rem;
}
.slide__profile span{
    display: block;
    color: var(--light-black);
    font-size: 0.813rem;
    font-weight: 500;
    margin-bottom: 2.5rem;
}
.swiper-pagination{
    position: relative; /* Adjust if needed, default is absolute */
    bottom: 10px !important; /* Default Swiper value, might need adjustment */
}
.swiper-pagination-bullet{
    /* bottom: 0 !important; */ /* Handled by .swiper-pagination */
    width: 14px !important;
    height: 6px !important;
    -webkit-border-radius: 5px !important;
    -moz-border-radius: 5px !important;
    -ms-border-radius: 5px !important;
    -o-border-radius: 5px !important;
    border-radius: 5px !important;
    -webkit-transition: all .3s linear !important;
    -moz-transition: all .3s linear !important;
    -ms-transition: all .3s linear !important;
    -o-transition: all .3s linear !important;
    transition: all .3s linear !important;
    background: var(--gray) !important; /* Ensure bullets are visible */
}
.swiper-pagination-bullet-active{
    width: 24px !important;
    background: var(--cta) !important;
}


/* ----------==========install==========---------- */


.install{
    color: var(--white);
    background: var(--cta);
    padding: 3rem .75rem;
    text-align: center;
}
.install h2{
    font-size: 1.563rem;
    transition-delay: .3s;
}
.install p{
    margin: 2rem 0;
    transition-delay: .45s;
}
.install__link.fadeFromTop{
    transition-delay: .7s;
}


/* ----------==========faq-accordion==========---------- */


.faq{
    padding: 3rem .75rem;
}
.faq__text{
    font-size: 0.875rem;
    text-align: center;
    padding: 0 .5rem;
    margin-bottom: 4rem;
}
.faq__h2{ /* This class is not used in HTML, but rule exists */
    padding: 0;
}

.faq__accordion{
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.faq__accordion details{
    border: 1px solid var(--light-gray);
    -webkit-border-radius: .5rem;
    -moz-border-radius: .5rem;
    -ms-border-radius: .5rem;
    -o-border-radius: .5rem;
    border-radius: .5rem;
    overflow: hidden;
}
details summary{
    color: var(--dark-black);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .5rem;
    padding: 1rem 1.5rem;
    cursor: pointer;
    list-style: none; /* Remove default marker */
}
details summary::-webkit-details-marker { /* Hide marker for Chrome/Safari */
    display: none;
}
details[open] summary{
    color: var(--white);
    background: var(--cta);
}
summary .question{
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: capitalize;
    display: grid;
    grid-template-columns: auto 1fr; /* Adjusted for better text flow */
    align-items: center;
    gap: 1rem;
    text-align: left; /* Ensure question text aligns left */
}
.question .question__count{
    width: 30px;
    height: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 0.875rem;
    padding: auto;
    border: 1px solid var(--light-gray);
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -ms-border-radius: 50%;
    -o-border-radius: 50%;
    border-radius: 50%;
    transition: all .3s linear;
}
details[open] .question .question__count{
    color: var(--dark-black);
    background: var(--white);
    border-color: var(--white);
}
details .fa-plus{
    display: block;
}
details .fa-minus{
    display: none;
}
details[open] .fa-plus{
    display: none;
}
details[open] .fa-minus{
    display: block;
}
details .answer{
    background: var(--light-white);
    padding: 1.5rem;
    text-align: left; /* Ensure answer text aligns left */
    -webkit-animation: fadeFromBottomAns .5s ease-out; /* Changed animation */
    animation: fadeFromBottomAns .5s ease-out; /* Changed animation */
}
@keyframes fadeFromBottomAns{ /* Renamed to avoid conflict if original fadeFromBottom is used elsewhere with different purpose */
    0%{
        opacity: 0;
        -webkit-transform: translateY(10px);
        -moz-transform: translateY(10px);
        -ms-transform: translateY(10px);
        -o-transform: translateY(10px);
        transform: translateY(10px);
    }100%{
        opacity: 1;
        -webkit-transform: translateY(0);
        -moz-transform: translateY(0);
        -ms-transform: translateY(0);
        -o-transform: translateY(0);
        transform: translateY(0);
    }
}


/* ----------==========blogs (Not used in current pages, but kept for style consistency) ==========---------- */


/*
.blogs{
    background: var(--light-white);
    padding: 3rem .75rem;
}
.blogs__text{
    font-size: 0.875rem;
    text-align: center;
    padding: 0 .5rem;
    margin-bottom: 3rem;
}
.blogs__grid{
    display: grid;
    justify-content: center;
    grid-template-columns: repeat(auto-fill, minmax(296px, 425px));
    gap: 2rem;
}
.blogs__grid .blog{
    text-decoration: none;
    color: var(--gray);
    background: var(--white);
    -webkit-border-radius: .4rem;
    -moz-border-radius: .4rem;
    -ms-border-radius: .4rem;
    -o-border-radius: .4rem;
    border-radius: .4rem;
    overflow: hidden;
    box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.1);
}
.blog:hover{
    -webkit-animation: boxShadow .3s linear forwards;
    animation: boxShadow .3s linear forwards;
}
@keyframes boxShadow{
    0%{
        box-shadow: none;
    }
    100%{
        box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.1);
    }
}
.blog:nth-child(1){transition-delay: .75s;}
.blog:nth-child(2){transition-delay: .8s;}
.blog:nth-child(3){transition-delay: .85s;}
.blog__img{
    overflow: hidden;
}
.blog__img img{
    display: block;
    width: 100%;
    height: 100%;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;
}
.blog:hover .blog__img img{
    -webkit-transform: scale(1.2);
    -moz-transform: scale(1.2);
    -ms-transform: scale(1.2);
    -o-transform: scale(1.2);
    transform: scale(1.2);
}
.blog__text{
    padding: 2rem;
}
.blog__text h5{
    color: var(--cta);
    font-size: 0.875rem;
    font-weight: 600;
}
.blog__text h4{
    color: var(--dark-black);
    font-size: 1.188rem;;
    font-weight: 600;
    margin: .35rem 0 1.15rem 0;
}
.blog__text-profile{
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    font-weight: 500;
    margin-top: 2rem;
}
.blog__text-profile img{
    width: 50px;
    height: 50px;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -ms-border-radius: 50%;
    -o-border-radius: 50%;
    border-radius: 50%;
}
.blog__text-profile h5{
    color: var(--light-black);
    font-size: 0.875rem;
    margin-bottom: .15rem;
}
.blog__text-profile p{
    font-size: 0.813rem;
}
.blog__text-profile p span{
    margin: 0 .35rem;
}
*/


/* ----------==========clients-slider==========---------- */


.clients{
    padding: 2.5rem .75rem;
}
.swiper{ /* This is a generic swiper class, could conflict if other swipers are added without specific class */
    width: 85%;
    height: 100px; /* Can be problematic if client logos have different aspect ratios */
    margin: 0 auto; /* Center the swiper container */
}
.swiper-wrapper{
    align-items: center;
}
.swiper-slide {
    /* max-width: 330px !important; */ /* Removed !important, manage width via slidesPerView or CSS grid for swiper parent */
    display: flex;
    justify-content: center;
    align-items: center;
    width: 80%; /* This with slidesPerView: 'auto' makes slides take 80% of container */
}
.swiper-slide img {
    max-width: 100%; /* Ensure image is responsive within slide */
    max-height: 60px; /* Control max height of logos */
    width: auto;
    height: auto;
    object-fit: contain; /* Ensure logo is not distorted */
}


/* ----------==========footer==========---------- */


footer{
    color: var(--footer-text);
    background: var(--dark-black);
    text-align: center;
    padding: 3rem .75rem;
}
.footer__top{
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2.5rem;
}
.footer__top .footer__intro{
    font-size: 0.875rem;
    padding: 0 .5rem;
}
.footer__intro--logo{
    max-width: 180px;
    margin-bottom: 1.5rem;
}
.footer__intro--media-links{
    width: 100%;
    list-style-type: none;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.25rem;
    margin: 2rem 0;
}
.footer__intro--media-links li a{
    color: var(--footer-text);
    font-size: 1rem;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;
}
.footer__intro--media-links li a:hover{
    color: var(--cta);
}
.footer__intro--copyright a{
    color: var(--footer-text);
    font-weight: 600;
    text-decoration: none;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;
    position: relative;
}
.footer__intro--copyright a:hover{
    color: var(--cta);
}
.footer__grids{
    display: grid;
    gap: 2.5rem;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); /* Responsive columns for footer grids */
}
.footer__grids .footer__grid h3{
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--white); /* Make footer titles white for better contrast */
}
.footer__grid--list{
    list-style-type: none;
    display: flex;
    flex-direction: column;
    gap: .75rem;
    margin-top: 1.5rem;
}
.footer__grid--list li a{
    color: var(--footer-text);
    text-decoration: none;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;
    position: relative;
}
/* Underline effect for footer links - kept simple */
/*
.footer__grid--list li a::before{
    position: absolute;
    content: '';
    left: 50%;
    bottom: -5px;
    width: 0;
    height: 2px;
    background: var(--white);
}
*/
.footer__grid--list li a:hover{
    color: var(--cta);
    padding-left: 5px; /* Slight indent on hover */
}
/* ----------newsletter---------- */
footer .newsletter{
    display: flex;
    flex-direction: column;
    gap: 2rem;
    border: 2px solid rgba(255, 255, 255, 0.2);
    -webkit-border-radius: .5rem;
    -moz-border-radius: .5rem;
    -ms-border-radius: .5rem;
    -o-border-radius: .5rem;
    border-radius: .5rem;
    padding: 2rem;
    margin-top: 3rem;
}
.newsletter__text{
    font-size: 0.875rem;
}
.newsletter__text h3{
    font-size: 1rem;
    margin-bottom: .5rem;
    color: var(--white); /* Make newsletter title white */
}
.newsletter__form{
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.newsletter__form > *{
    height: 3rem;
    color: var(--white);
    background: var(--cta);
    font-size: 0.875rem;
    font-weight: 600;
    border: none;
    outline: none;
    -webkit-border-radius: .3rem;
    -moz-border-radius: .3rem;
    -ms-border-radius: .3rem;
    -o-border-radius: .3rem;
    border-radius: .3rem;
}
.newsletter__form input{
    text-align: center;
    background: rgba(255, 255, 255, 0.2);
    padding-left: 1rem; /* Add padding for placeholder */
    padding-right: 1rem;
}
.newsletter__form input::placeholder{ /* Corrected selector */
    color: var(--white);
    opacity: 0.8; /* Make placeholder slightly less prominent */
}
.newsletter__form button{
    cursor: pointer;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;
}
.newsletter__form button:hover{
    color: var(--cta);
    background: var(--white);
}


/* ----------==========contact-page==========---------- */


.contact__header,
.blog__header{ /* .blog__header not used, but kept for consistency */
    gap: .5rem;
    font-size: 0.875rem;
    font-weight: 500;
}
.contact__header h1,
.blog__header h1{
    font-size: 1.563rem;
}
.contact__header--nav,
.blog__header--nav{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .75rem;
}
.contact__header--nav a,
.blog__header--nav a{
    color: var(--white);
    text-decoration: none;
    position: relative;
}
.contact__header--nav i,
.blog__header--nav i{
    font-size: 0.625rem;
}
.contact__header--nav a::before, .blog__header--nav a::before {
    position: absolute;
    content: '';
    left: 50%;
    transform: translateX(-50%);
    bottom: -2px; /* Position underline slightly below text */
    width: 0;
    height: 2px;
    background: var(--white);
    transition: width .3s ease-in-out;
}
.contact__header--nav a:hover::before, .blog__header--nav a:hover::before {
    width: 100%;
}


/* ----------contact-grid---------- */

.contact{
    padding: 3rem .75rem;
}
.contact__grids{
    width: 100%;
    display: grid;
    gap: 2rem;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); /* Responsive grid */
}
.contact__grid{
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center; /* Center content in grid items */
    text-align: center; /* Center text */
    gap: 1.5rem;
    padding: 2.5rem;
    -webkit-border-radius: .5rem;
    -moz-border-radius: .5rem;
    -ms-border-radius: .5rem;
    -o-border-radius: .5rem;
    border-radius: .5rem;
    box-shadow: 0 1px 20px 0 rgb(32 32 32 / 11%);
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;
}
.contact__grid:nth-child(1){ transition-delay: .2s;}
.contact__grid:nth-child(2){ transition-delay: .4s;}
.contact__grid:nth-child(3){ transition-delay: .6s;}
.contact__grid:hover{
    -webkit-animation: changeBg .3s linear forwards;
    animation: changeBg .3s linear forwards;
}
@keyframes changeBg{
    0%{
        background: var(--white);
        transform: translateY(0); /* Add to keyframes */
    }
    100%{
        background: var(--cta);
        color: var(--white); /* Ensure text color changes */
        transform: translateY(-5px); /* Add slight lift effect */
    }
}
.contact__grid .fa-solid{
    color: var(--cta);
    font-size: 1.875rem;
    transition: color .3s linear; /* Smooth color transition for icon */
}
.contact__grid:hover .fa-solid{
    color: var(--white);
}
.contact__grid--text h3{
    color: var(--dark-black);
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: .75rem;
    transition: color .3s linear; /* Smooth color transition for text */
}
.contact__grid:hover .contact__grid--text h3{ /* Corrected selector */
    color: var(--white);
}
.contact__grid--text a{
    color: var(--gray);
    font-weight: 500;
    text-decoration: none;
    display: block; /* Make links block for easier clicking */
    margin-bottom: 0.5rem; /* Space out links */
    transition: color .3s linear, opacity .3s linear; /* Smooth color transition for text */
}
.contact__grid--text a:last-child {
    margin-bottom: 0;
}
.contact__grid--text a:hover{
    opacity: .8;
    color: var(--cta); /* Hover color for links when not in hover state of parent */
}
.contact__grid:hover .contact__grid--text a{ /* Corrected selector */
    color: var(--white);
    opacity: 1;
}
.contact__grid:hover .contact__grid--text a:hover{
    opacity: 0.8; /* Slight dim on hover when parent is hovered */
}


/* ----------support-text---------- */

.support{
    width: 100%;
    color: var(--white);
    background: var(--cta);
    display: flex;
    flex-direction: column;
    gap: 3rem;
    padding: 3rem .75rem;
}
.support__text h2{
    font-size: 1.25rem;
    text-transform: capitalize;
    margin-bottom: .75rem;
}
.support__text--profile{
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 2.5rem 0;
}
.support__text--profile img{
    width: 70px;
    height: 70px;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -ms-border-radius: 50%;
    -o-border-radius: 50%;
    border-radius: 50%;
}
.support__text--profile-text p{
    font-size: 0.813rem;
    font-weight: 500;
}
.support__text--profile-text h4{
    font-size: 1.25rem;
    font-weight: 600;
}
.support__text--time{
    font-weight: 500;
}
.support__text--time p {
    margin-bottom: 0.25rem; /* Add some space between time lines */
}
.support__text--time a{
    color: var(--white);
    text-decoration: none;
    display: inline-flex; /* Changed to inline-flex */
    align-items: center;
    gap: .5rem;
    margin-top: 1.5rem;
    padding: 0.5rem 1rem; /* Add some padding */
    border: 1px solid var(--white); /* Add border */
    border-radius: .3rem;
    transition: background-color .3s, color .3s;
}
.support__text--time a:hover {
    background-color: var(--white);
    color: var(--cta);
}
.support__text--time a i {
    transition: transform .3s;
}
.support__text--time a:hover i {
    transform: translateX(5px);
}


/* ----------support-form---------- */

.support__form-container{
    background: var(--white);
    -webkit-border-radius: .5rem;
    -moz-border-radius: .5rem;
    -ms-border-radius: .5rem;
    -o-border-radius: .5rem;
    border-radius: .5rem;
    box-shadow: 0 1px 30px 0 rgb(32 32 32 / 11%);
    padding: 2rem;
}
.support__form-container form{
    display: grid;
    gap: 1rem;
}
.support__form-container form input,
.support__form-container form textarea{
    width: 100%;
    height: 3.25rem;
    background: var(--light-white);
    border: 1px solid var(--light-gray); /* Changed from footer-text for better contrast */
    outline: none;
    font-size: 0.9375rem;
    font-family: 'Inter', sans-serif;
    -webkit-border-radius: .3rem;
    -moz-border-radius: .3rem;
    -ms-border-radius: .3rem;
    -o-border-radius: .3rem;
    border-radius: .3rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem; /* Added right padding */
    transition: border-color .3s;
}
.support__form-container form input:focus,
.support__form-container form textarea:focus {
    border-color: var(--cta); /* Highlight focus */
}
.support__form-container form input::placeholder,
.support__form-container form textarea::placeholder{
    color: var(--gray);
}
.support__form-container form textarea{
    height: 180px;
    padding-top: 1rem;
}
.support__form-container form button{
    color: var(--white);
    background: var(--cta);
    font-size: 0.875rem;
    font-weight: 500;
    font-family: 'Inter', sans-serif;
    border: none;
    -webkit-border-radius: .3rem;
    -moz-border-radius: .3rem;
    -ms-border-radius: .3rem;
    -o-border-radius: .3rem;
    border-radius: .3rem;
    padding: 1rem 1.5rem;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
    transition: all .3s linear;
    cursor: pointer;
}
.support__form-container form button:hover{
    background: var(--dark-black);
    box-shadow: 0 3px 5px rgba(0,0,0,0.1); /* Add subtle shadow */
}

/* ----------support-map---------- */

.support__map{
    height: 300px;
    margin-top: 3rem; /* Add space above map on mobile */
}
.support__map iframe{
    height: 100%;
    width: 100%; /* Ensure iframe takes full width */
}



/* ----------==========blog-page (Not used, kept for style consistency) ==========---------- */


/*
.blog__main{
    background: var(--light-white);
    display: grid;
    gap: 1.5rem;
}
*/
/* ----------blog__main-left (Not used) ---------- */
/*
.blog__main-left{
    display: grid;
    gap: 3rem;
    padding: 3rem .75rem 0 .75rem;
}
.blog__main-left .pagination{
    list-style-type: none;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    row-gap: 1rem;
}
.pagination li a{
    display: block;
    font-size: 14px;
    color: var(--dark-black);
    background: var(--white);
    text-decoration: none;
    padding: .5rem 1.25rem;
    border: 1px solid var(--light-gray);
    border-radius: .3rem;
    -webkit-border-radius: .3rem;
    -moz-border-radius: .3rem;
    -ms-border-radius: .3rem;
    -o-border-radius: .3rem;
}
.pagination li a.page-active{
    color: var(--white);
    background: var(--cta);
    border-color: transparent;
}
*/
/* ----------blog__main-right (Not used) ---------- */
/*
.blog__main-right{
    display: grid;
    justify-content: center;
    gap: 2rem;
    text-transform: capitalize;
    padding: 0 .75rem 3rem .75rem;
}
.blog__main-right h2{
    color: var(--dark-black);
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 2rem;
}
*/
/* ---search (Not used) --- */
/*
.blog__main-right .search,
.blog__main-right .feeds,
.blog__main-right .categories,
.blog__main-right .tags,
.blog__main-right .help{
    background: var(--white);
    padding: 2.5rem;
    border-radius: .5rem;
    -webkit-border-radius: .5rem;
    -moz-border-radius: .5rem;
    -ms-border-radius: .5rem;
    -o-border-radius: .5rem;
    box-shadow: 0 3px 10px 0 rgba(0, 0, 0, 0.1);
}
.search form{
    width: 100%;
    display: flex;
    align-items: center;
    position: relative;
}
.search form input{
    width: 100%;
    height: 3.5rem;
    border: 1px solid var(--light-gray);
    outline: none;
    padding-left: 2rem;
    border-radius: .3rem;
    -webkit-border-radius: .3rem;
    -moz-border-radius: .3rem;
    -ms-border-radius: .3rem;
    -o-border-radius: .3rem;
}
.search form input::placeholder{
    color: var(--dark-black);
    font-size: 14px;
}
.search form button{
    position: absolute;
    right: .5rem;
    width: 2.75rem;
    height: 2.75rem;
    color: var(--white);
    background: var(--cta);
    font-size: 14px;
    display: flex;
    justify-content: center;
    align-items: center;
    border: none;
    border-radius: .3rem;
    -webkit-border-radius: .3rem;
    -moz-border-radius: .3rem;
    -ms-border-radius: .3rem;
    -o-border-radius: .3rem;
    outline: none;
    padding: .85rem;
    cursor: pointer;
    transition: all .3s linear;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
}
.search form button:hover{
    background: var(--dark-black);
}
*/
/* ---popular-feeds (Not used) --- */
/*
.feeds .feed{
    display: flex;
    gap: 1.25rem;
    text-decoration: none;
}
.feeds hr{
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid var(--light-gray);
    margin: 1.5rem 0;
}
.feed__img{
    min-width: 80px;
    height: 80px;
    border-radius: .5rem;
    -webkit-border-radius: .5rem;
    -moz-border-radius: .5rem;
    -ms-border-radius: .5rem;
    -o-border-radius: .5rem;
    overflow: hidden;
}
.feed__img img{
    width: 80px;
    height: 100%;
}
.feed__text--category{
    color: var(--gray);
    font-size: 14px;
    font-weight: 500;
    transition: all .3s linear;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
}
.feed__text h3{
    color: var(--dark-black);
    font-size: 14px;
    font-weight: 500;
    margin: .5rem 0 .75rem 0;
    transition: all .3s linear;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
}
.feed__text p{
    color: var(--gray);
    font-size: 13px;
}
.feed__text p i{
    margin-right: .25rem;
}
.feed__text--category:hover,
.feed__text h3:hover{
    color: var(--cta);
}
*/
/* ---categories (Not used) --- */
/*
.categories__list{
    list-style-type: none;
    display: flex;
    flex-direction: column;
}
.categories__list li a{
    display: block;
    color: var(--gray);
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    padding-top: 1rem;
    transition: all .3s linear;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
}
.categories__list li:hover a{
    color: var(--cta);
    padding-left: .6rem;
}
.categories__list li:not(:last-child){
    border-bottom: 1px solid var(--light-gray);
    padding-bottom: 1rem;
}
*/
/* ---popular-tags (Not used) --- */
/*
.tags__list{
    list-style-type: none;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}
.tags__list li a{
    display: block;
    color: var(--gray);
    font-size: 14px;
    text-decoration: none;
    border: 1px solid var(--light-gray);
    border-radius: .4rem;
    -webkit-border-radius: .4rem;
    -moz-border-radius: .4rem;
    -ms-border-radius: .4rem;
    -o-border-radius: .4rem;
    padding: .5rem 1rem;
    transition: all .3s linear;
    -webkit-transition: all .3s linear;
    -moz-transition: all .3s linear;
    -ms-transition: all .3s linear;
    -o-transition: all .3s linear;
}
.tags__list li a:hover{
    color: var(--white);
    background: var(--cta);
}
*/
/* ---help (Not used) --- */
/*
.help p{
    color: var(--cta);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.25;
    margin-bottom: .5rem;
}
.help a{
    color: var(--dark-black);
    font-size: 1rem;
    font-weight: 500;
    text-decoration: none;
}
*/

/* ----------==========media-queries==========---------- */



@media(min-width: 750px){
    nav{
        padding: 1.5rem 3rem;
    }
    body.scroll-down .nav__links li a:hover{ /* Underline for desktop nav links */
        color: var(--cta);
    }
    .nav__links li a::before { /* Enable underline for desktop */
        position: absolute;
        content: '';
        left: 50%;
        transform: translateX(-50%);
        bottom: -5px; /* Adjust position of underline */
        width: 0;
        height: 2px;
        background: var(--cta); /* Underline color matches active link */
        transition: width 0.3s ease-in-out;
    }
    body:not(.scroll-down) nav .nav__links li a::before { /* Underline color when nav is green */
        background: var(--white);
    }

    .nav__links li a:hover::before {
        width: 100%;
    }
    .nav__links li a.active::before { /* Persistent underline for active link */
        width: 100%;
    }


    .nav__cta{
        display: block;
        color: var(--white);
        font-size: 0.875rem;
        font-weight: 500;
        text-decoration: none;
        padding: .75rem 1.5rem;
        border: 2px solid var(--white);
        -webkit-border-radius: .4rem;
        -moz-border-radius: .4rem;
        -ms-border-radius: .4rem;
        -o-border-radius: .4rem;
        border-radius: .4rem;
        -webkit-transition: all .3s linear;
        -moz-transition: all .3s linear;
        -ms-transition: all .3s linear;
        -o-transition: all .3s linear;
        transition: all .3s linear;
    }
    .nav__cta:hover{
        color: var(--cta);
        background: var(--white);
        box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.1);
    }
    body.scroll-down .nav__cta{
        color: var(--white); /* Ensure text is white on CTA bg */
        background: var(--cta);
        border-color: var(--cta); /* Match border to bg */
    }
    body.scroll-down .nav__cta:hover{
        color: var(--white);
        background: var(--dark-black);
        border-color: var(--dark-black); /* Match border to bg */
        box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.1);
    }
    header{
        padding: 10rem 3rem 3rem 3rem;
    }
    .header__text h1{
        font-size: 1.875rem;
    }
    .header__text p{
        font-size: 0.9375rem;
    }
    .header__text-link,
    .install__link{
        flex-direction: row;
        justify-content: center;
    }


    .features,
    .pricing,
    .testimonial
    /* .blogs - not used */
    {
        padding: 3rem; /* Adjusted from 3rem to 5rem in original, then back, let's try 4rem */
    }
    .features__text h2,
    .pricing__text h2,
    .team__text h2,
    .faq__text h2
    /* .blogs__text h2 - not used */
    {
        font-size: 1.5rem;
    }
    .features__grid{
        grid-template-columns: repeat(auto-fill, minmax(296px, 1fr)); /* Sticking to 1fr for flexibility */
    }

    .overview-flex{
        padding: 0 3rem;
    }
    .overview-flex__text h2{
        font-size: 1.563rem;
    }



    .overview__facts{
        padding: 5rem 3rem;
    }
    .fact-flex{
        flex-direction: row;
        justify-content: space-evenly;
    }


    .pricing__grid{
        grid-template-columns: repeat(auto-fill,minmax(296px,1fr)); /* Sticking to 1fr */
    }

    
    .team{
        padding: 3rem;
    }
    .team__grid{
        grid-template-columns: repeat(auto-fill,minmax(296px,1fr)); /* Sticking to 1fr */
    }


    .testimonial{
        position: relative;
        overflow: hidden;
    }
    .testimonial__pattern{
        display: block;
        position: absolute;
        top: -90px;
        right: -200px;
        width: 300px;
        height: 380px;
        opacity: 0.5; /* Make pattern more subtle */
    }
    .testimonial__pattern--bottom{
        top: unset;
        right: unset;
        left: -200px;
        bottom: -90px;
    }
    .swiper-wrapper .slide{ /* Referring to .swiper1 .slide for testimonials */
        max-width: 550px !important;
    }
    .swiper1 .slide q{ /* Specificity for testimonial quote */
        font-size: 1.063rem;
        font-weight: 600;
    }


    .install{
        padding: 5rem 3rem;
    }
    .install h2{
        font-size: 2rem;
    }


    .faq{
        padding: 3rem; /* Adjusted from 3rem to 5rem in original, then back, let's try 4rem */
    }


    /* .blogs__grid - not used */
    /*
    .blogs__grid{
        grid-template-columns: repeat(auto-fill, minmax(296px, 320px));
    }
    */


    .clients .swiper-slide{ /* Referring to .clients .swiper-slide */
        max-width: 220px !important;
    }
    .clients .swiper-slide img{ /* Referring to .clients .swiper-slide img */
        max-width: 150px;
        opacity: 0.7; /* Make client logos a bit subtle */
        filter: grayscale(50%); /* Slightly desaturate */
        transition: opacity .3s, filter .3s;
    }
    .clients .swiper-slide img:hover {
        opacity: 1;
        filter: grayscale(0%);
    }


    footer{
        text-align: left;
        padding: 3rem 1.5rem;
    }
    .footer__top{
        flex-direction: row;
        flex-wrap: wrap; /* Allow wrapping on smaller tablet sizes */
        justify-content: space-between; /* Better distribution */
    }
    .footer__top .footer__intro{
        padding: 0 1.5rem;
        flex-basis: 100%; /* Full width on smaller tablets before breaking to columns */
        margin-bottom: 2rem; /* Space before grids */
    }
    .footer__intro--media-links{
        justify-content: flex-start; /* Align to left */
    }
    .footer__grids{
        flex-basis: 100%; /* Full width for grids container */
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); /* More responsive footer columns */
        gap: 1.5rem; /* Reduce gap slightly */
    }
    footer .newsletter{
        flex-direction: row;
        align-items: center;
        flex-wrap: wrap; /* Allow newsletter to wrap */
    }
    footer .newsletter__text {
        flex-basis: 100%; /* Full width on smaller tablets */
        margin-bottom: 1rem; /* Space before form */
    }
    footer .newsletter__form{
        flex-direction: row;
        flex-grow: 1; /* Allow form to take space */
        flex-basis: 100%; /* Full width for form */
    }
    .newsletter__form input {
        flex-grow: 1; /* Input takes available space */
    }
    .newsletter__form button{
        padding: 0 2rem;
        flex-shrink: 0; /* Prevent button from shrinking */
    }


    .contact__header h1,
    .blog__header h1{ /* .blog__header not used */
        font-size: 1.75rem;
    }
    .contact,
    .support{
        padding: 4rem 3rem; /* Consistent padding */
    }
    .contact__grid{
        flex-direction: row; /* Already column in mobile, check if this is intended for tablet */
        /* If contact__grid should remain column on tablet and only row on desktop, this rule needs to be in a larger media query */
        /* For now, assuming column is fine until larger screens based on earlier styles. */
        /* Re-evaluating: contact__grid is column on mobile. Let's keep it column until larger breakpoint like 1000px. */
        /* So, removing this flex-direction: row here. */
    }
    .support__text h2{
        font-size: 1.563rem;
    }
    .support__map { /* Add space for map on tablet */
        margin-top: 0; /* Reset mobile margin if support becomes row */
        height: 350px; /* Slightly larger map */
    }

    /* Adjusting blog main for tablet - NOT USED CURRENTLY */
    /*
    .blog__main-left{
        padding: 3rem 1.5rem;
    }
    .blog__main-left .blogs__grid{
        grid-template-columns: repeat(auto-fill, minmax(296px, 348px));
        gap: 1.5rem;
    }
    */
}


@media(min-width: 1000px){
    :target{
      scroll-margin-top: 80.83px; /* Adjust based on actual nav height at this breakpoint if it changes */
    }
    .go-top{
        right: 2.5rem;
        bottom: 2.5rem;
    }
    .nav__links{
        position: static; /* Changed from unset */
        width: auto; /* Changed from max-content */
        height: auto;
        background: transparent;
        display: flex;
        align-items: center; /* Align items vertically */
        gap: 1.5rem;
        box-shadow: none;
        -webkit-border-radius: 0;
        -moz-border-radius: 0;
        -ms-border-radius: 0;
        -o-border-radius: 0;
        border-radius: 0;
        padding: 0; /* Remove padding */
        overflow: visible; /* Ensure dropdowns (if any) are visible */
    }
    .nav__links li a{
        color: var(--white);
        font-size: 0.9375rem;
        padding: .5rem 0; /* Add some vertical padding for easier clicking, 0 horizontal */
    }
    body.scroll-down .nav__links li a{
        color: var(--dark-black);
    }
    .nav__menu{
        display: none;
    }


    header{
        flex-direction: row;
        align-items: center;
        text-align: left;
        padding: 10rem 3rem 5rem 3rem; /* Adjust padding */
    }
    .header__text {
        flex: 1; /* Allow text to take space */
        padding-right: 2rem; /* Space between text and image */
    }
    .header__img {
        flex: 1; /* Allow image to take space */
        max-width: 50%; /* Limit image width */
    }
    .header__text h1{
        font-size: 2.5rem;
    }
    .header__text p{
        margin: 1.5rem 0 2.5rem 0;
    }
    .header__text-link{
        justify-content: flex-start; /* Align to left */
    }


    .features,
    .team,
    .testimonial,
    .install,
    .faq,
    /* .blogs, - not used */
    footer{
        padding: 6rem 3rem;
    }
    .features__text,
    .pricing__text,
    .team__text,
    .faq__text
    /* .blogs__text - not used */
    {
        max-width: 650px; /* Increased max-width */
        font-size: 0.9375rem;
        padding: 0;
        margin: 0 auto 5rem auto;
    }
    .features__text h3,
    .pricing__text h3,
    .team__text h3,
    .faq__text h3
    /* .blogs__text h3 - not used */
    {
        font-size: 0.9375rem;
    }
    .features__text h2,
    .pricing__text h2,
    .team__text h2,
    .faq__text h2
    /* .blogs__text h2 - not used */
    {
        font-size: 2.125rem;
        font-weight: 800;
    }
    .features__grid{
        grid-template-columns: repeat(3, 1fr);
    }


    .overview,.pricing{
        padding-top: 6rem;
    }
    .overview-flex{
        flex-direction: row;
        align-items: center;
        margin-bottom: 6rem;
        gap: 2rem; /* Add gap */
    }
    .overview-flex > section, .overview-flex > div { /* Target direct children for 50% width */
        width: 50%;
        flex: 1; /* Use flex for equal distribution */
    }
    .overview-flex__text {
        padding-right: 2rem; /* Space for reversed layout */
    }
    .overview-flex-two .overview-flex__text {
        padding-right: 0;
        padding-left: 2rem;
    }
    .overview-flex-two{
        flex-direction: row-reverse;
    }


    .overview__facts{
        padding: 8rem 3rem;
    }
    .overview__facts>*{
        max-width: 750px;
        margin: 0 auto;
    }
    .overview__facts h2{
        font-size: 2.188rem;
    }
    .overview__facts>p{
        margin: .75rem auto 2.5rem auto;
    }
    .fact-flex__column h3{
        font-size: 2.188rem;
    }


    .pricing__grid{
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); /* Responsive pricing cards */
        gap: 1.5rem;
    }
    @media (min-width: 1200px) { /* Force 4 columns on very large screens */
        .pricing__grid{
            grid-template-columns: repeat(4, 1fr);
        }
    }



    .team__grid{
        grid-template-columns: repeat(3, 1fr);
    }


    .stuff__info{
        justify-content: space-between;
        align-items: center;
        padding: 1.5rem; /* Adjusted padding */
        text-align: center; /* Ensure text is left-aligned */
    }
    .stuff__info--name{
        width: auto; /* Adjust width */
        text-align: left;
        margin-right: 1rem; /* Space between name and links */
    }
    .stuff__info--name h3{
        margin: 0 0 0.25rem 0; /* Adjust margin */
    }
    .stuff__info--links{
        justify-content: flex-end;
        margin: 0;
        flex-shrink: 0; /* Prevent links from shrinking */
    }


    .swiper1{ /* Testimonial slider */
        max-width: 600px; /* Increased max width */
    }
    .swiper1 .swiper-wrapper .slide{ /* Testimonial slide */
        max-width: 600px !important;
    }
    .swiper-pagination{
        bottom: 10px !important; /* Ensure pagination is visible */
        position: relative; /* Make it part of the flow */
        margin-top: 1rem; /* Space above pagination */
    }


    .install>*{
        max-width: 650px; /* Increased max-width */
        margin: 0 auto;
    }
    .install h2{
        font-size: 2.375rem;
    }
    .install p{
        margin: 2rem auto;
    }


    /* .blogs__grid - not used */
    /*
    .blogs__grid{
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
    }
    */


    .clients .swiper-slide img{ /* Client logos */
        opacity: .8;
        filter: grayscale(20%); /* Less grayscale */
    }
    .clients .swiper-slide img:hover{
        opacity: 1;
        filter: grayscale(0%);
    }


    .footer__top .footer__intro{
        padding: 0;
        flex-basis: 30%; /* Intro takes about 1/3 */
        margin-bottom: 0; /* Reset margin */
    }
    .footer__grids{
        flex-basis: 65%; /* Grids take about 2/3 */
        grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); /* Adjust minmax for 4 columns */
        gap: 1.5rem; /* Adjust gap */
    }
     @media (min-width: 1200px) { /* Force 4 columns for footer grids on large screens */
        .footer__grids{
             grid-template-columns: repeat(4, 1fr);
        }
    }
    footer .newsletter{
        margin-top: 4rem; /* Reduced margin */
        flex-wrap: nowrap; /* Prevent wrapping on desktop */
    }
    footer .newsletter__text {
        flex-basis: auto; /* Reset basis */
        margin-bottom: 0;
        width: 50%; /* Text takes half */
    }
    footer .newsletter__form{
         width: 50%; /* Form takes half */
    }
    .newsletter__text{
        font-size: 0.9375rem;
    }
    .newsletter__text h3{
        font-size: 1.125rem;
    }
    .newsletter__form input{
        width: 100%;
        text-align: left;
        padding-left: 1.5rem;
    }
    .newsletter__form button{
        font-size: 0.9375rem;
    }


    .contact__header,
    .blog__header{ /* .blog__header not used */
        flex-direction: column;
        gap: 1rem;
        padding: 10rem 3rem 6rem 3rem; /* Adjusted padding */
    }
    .contact__header h1,
    .blog__header h1{
        font-size: 2rem;
    }
    .contact{
        padding: 6rem 3rem;
    }
    .contact__text{
        max-width: 650px; /* Increased */
        margin: 0 auto 4rem auto; /* Reduced bottom margin */
    }
    .contact__text h3{
        font-size: 0.9375rem;
    }
    .contact__text h2{
        font-size: 2.125rem;
        text-transform: capitalize;
    }
    .contact__grids{
        grid-template-columns: repeat(3, 1fr); /* 3 columns for contact info */
        gap: 1.5rem;
        margin-top: 4rem; /* Reduced margin */
    }
    .contact__grid{ /* For desktop, contact grid items can be row */
        flex-direction: row;
        align-items: flex-start;
        text-align: left;
    }
    .contact__grid > div:first-child { /* Icon container */
        margin-right: 1.5rem;
    }
    .contact__grid--text a{
        display: block; /* Ensure links are block */
    }
    .support{
        background: var(--cta) url(./images/contact-bg.jpg) no-repeat center center; /* Ensure bg image is centered */
        background-size: cover; /* Cover the area */
        flex-direction: row;
        align-items: stretch; /* Stretch items to fill height */
        padding: 0; /* Remove padding, handled by children */
        min-height: 600px; /* Ensure a minimum height */
    }
    .support__text{
        width: 55%; /* Adjust width */
        background: rgba(var(--cta-rgb, 45, 108, 81), 0.9); /* CTA with opacity to see bg */
        /* To use var(--cta) with opacity, define it as RGB first in :root */
        /* e.g. --cta-rgb: 45, 108, 81; then background: rgba(var(--cta-rgb), 0.9); */
        /* For simplicity, I'll hardcode the RGB of #2D6C51 here */
        /* background: rgba(45, 108, 81, 0.92); */
        padding: 6rem 4rem 6rem 3rem; /* Adjusted padding */
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
    .support__text h2{
        font-size: 1.875rem;
    }
    .support__form-container{
        width: 45%; /* Adjust width */
        margin-left: 0; /* Remove negative margin */
        background: var(--white); /* Ensure form bg is white */
        padding: 3rem;
        display: flex;
        align-items: center; /* Center form vertically if possible */
    }
    .support__form-container form{
        width: 100%; /* Form takes full width of container */
        grid-template-columns: 1fr 1fr;
        gap: 1.5rem; /* Increase gap */
    }
    .support__form-container form textarea,
    .support__form-container form button{
        grid-column: 1/-1;
    }
    .support__map {
        display: none; /* Hide the separate map, as it's often part of contact section or a full-width section */
        /* If you want map below form, adjust layout */
    }

    /* Blog main - NOT USED */
    /*
    .blog__main{
        grid-template-columns: 2fr 1fr;
        gap: 3rem; 
        padding: 6rem 3rem;
    }
    .blog__main-left{
        width: 100%;
        padding: 0;
    }
    .blog__main-left .blogs__grid{
        grid-template-columns: 1fr 1fr;
    }
    .blog__main-right{
        width: 100%;
        height: max-content;
        padding: 0;
    }
    .blog__main-right > *{
        height: max-content;
    }
    */
}

@media(min-width: 1250px){
    nav{
        padding: 1.5rem 5rem;
    }
    .nav__links{
        gap: 2.5rem;
    }
    .nav__cta{
        font-size: 0.9375rem;
    }


    header{
        padding: 10rem 5rem 5rem 5rem;
    }
    .header__img{
        max-width: 45%; /* Further refine image size */
    }
    .header__text-link{
        gap: 1rem;
    }


    .features,
    .pricing,
    .team,
    .faq,
    /* .blogs, - not used */
    .clients,
    footer{
        padding: 6rem 5rem;
    }
    .features__text,
    .pricing__text,
    .team__text,
    .faq__text
    /* .blogs__text - not used */
    {
        max-width: 700px;
    }


    .overview-flex{
        padding: 0 5rem;
        gap: 3rem; /* Increase gap */
    }
    .overview-flex__text h2{
        font-size: 1.875rem;
    }


    .swiper1{ /* Testimonial slider */
        max-width: 700px;
    }
    .swiper1 .swiper-wrapper .slide{ /* Testimonial slide */
        max-width: 700px !important;
    }


    .install>*{
        max-width: 700px;
    }
    .install__link{
        gap: 1rem;
    }


    .contact
    /* .blog__main - not used */
    {
        padding: 6rem 5rem;
    }
    .support__text{ /* Support section text part */
        padding: 8rem 6rem 8rem 5rem; /* Adjust padding */
    }
    .support__form-container {
        padding: 4rem; /* More padding for form */
    }
}
@media(min-width: 1450px){
    nav{
        padding: 1.5rem 7rem;
    }
    .nav__cta{
        font-size: 1rem;
    }

    header{
        padding: 10rem 7rem 5rem 7rem;
    }

    .features,
    .pricing,
    .team,
    .faq,
    /* .blogs, - not used */
    .clients,
    footer
    /* .blog__main - not used */
    {
        padding: 6rem 7rem;
    }

    .overview-flex{
        gap: 3.5rem;
        padding: 0 7rem;
    }

    .support__text{ /* Support section text part */
        padding: 8rem 3rem 8rem 7rem;
    }
}



/* ----------==========transtition-on-scroll==========---------- */



.fadeFromLeft{
    opacity: 0;
    -webkit-transform: translateX(-20px);
    -moz-transform: translateX(-20px);
    -ms-transform: translateX(-20px);
    -o-transform: translateX(-20px);
    transform: translateX(-20px);
    /* Modifica qui il valore da .5s a .3s (o altro) */
    -webkit-transition: opacity .3s ease-out, transform .3s ease-out;
    -moz-transition: opacity .3s ease-out, transform .3s ease-out;
    -ms-transition: opacity .3s ease-out, transform .3s ease-out;
    -o-transition: opacity .3s ease-out, transform .3s ease-out;
    transition: opacity .3s ease-out, transform .3s ease-out;
}
.ffl-active{
    opacity: 1;
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -ms-transform: translateX(0);
    -o-transform: translateX(0);
    transform: translateX(0);
}
.fadeFromRight{
    opacity: 0;
    -webkit-transform: translateX(20px);
    -moz-transform: translateX(20px);
    -ms-transform: translateX(20px);
    -o-transform: translateX(20px);
    transform: translateX(20px);
    -webkit-transition: opacity .5s ease-out, transform .5s ease-out;
    -moz-transition: opacity .5s ease-out, transform .5s ease-out;
    -ms-transition: opacity .5s ease-out, transform .5s ease-out;
    -o-transition: opacity .5s ease-out, transform .5s ease-out;
    transition: opacity .5s ease-out, transform .5s ease-out;
}
.ffr-active{
    opacity: 1;
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -ms-transform: translateX(0);
    -o-transform: translateX(0);
    transform: translateX(0);
}
.fadeFromBottom{ /* This class name might be confusing if used for elements appearing from top */
    opacity: 0;
    -webkit-transform: translateY(20px); /* If it's 'from bottom', translateY should be positive */
    -moz-transform: translateY(20px);
    -ms-transform: translateY(20px);
    -o-transform: translateY(20px);
    transform: translateY(20px);
    -webkit-transition: opacity .5s ease-out, transform .5s ease-out;
    -moz-transition: opacity .5s ease-out, transform .5s ease-out;
    -ms-transition: opacity .5s ease-out, transform .5s ease-out;
    -o-transition: opacity .5s ease-out, transform .5s ease-out;
    transition: opacity .5s ease-out, transform .5s ease-out;
}
.ffb-active{ /* Active state for 'from bottom' */
    opacity: 1;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
}
.fadeFromTop{ /* Elements appearing from top */
    opacity: 0;
    -webkit-transform: translateY(-20px); /* translateY should be negative */
    -moz-transform: translateY(-20px);
    -ms-transform: translateY(-20px);
    -o-transform: translateY(-20px);
    transform: translateY(-20px);
    -webkit-transition: opacity .5s ease-out, transform .5s ease-out;
    -moz-transition: opacity .5s ease-out, transform .5s ease-out;
    -ms-transition: opacity .5s ease-out, transform .5s ease-out;
    -o-transition: opacity .5s ease-out, transform .5s ease-out;
    transition: opacity .5s ease-out, transform .5s ease-out;
}
.fft-active{ /* Active state for 'from top' */
    opacity: 1;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
}