.footer {
    background-size: cover;
}
.banner {
    position: relative;
    background-color: #ff8731;
    overflow: hidden;
    z-index: 2;
}
.banner__image {
    display: block;
    opacity: 0;
    transform: scale(1.05);
    animation: fadeInImage 1s ease forwards;
    width: 100%;
    object-fit: cover;
    height: auto;
}
.banner__container {
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}
.banner__content {
    display: flex;
    flex-direction: column;
    max-width: 1400px;
    gap: 1.25rem;
    text-align: center;
    opacity: 0;
    transform: translateY(30px);
    animation: fadeInText 1s ease forwards;
    animation-delay: 0.5s;
}
.banner__title {
    font-family: Unbounded, sans-serif;
    font-size: 4.063rem;
    font-weight: 900;
    text-transform: uppercase;
}
.banner__description {
    font-size: 2.063rem;
    font-weight: 700;
}
.cases {
    max-width: 93.75rem;
    margin-inline: auto;
}
.cases__list {
    display: flex;
    justify-content: space-between;
    gap: 3.125rem;
    padding: 0 2.5rem;
    transition: transform 0.5s ease-in-out;
    cursor: grab;
}
@media (max-width: 1023px) {
    .cases__list {
        gap: 2.296rem;
        padding: 0 4.592rem;
    }
}
@media (max-width: 768px) {
    .cases__list {
        gap: 3.214rem;
        padding: 0 3.214rem;
    }
}
.cases__card {
    position: relative;
    opacity: 0;
    transform: translateY(30px);
    transition:
        opacity 0.8s ease,
        transform 0.8s ease;
    will-change: transform, opacity;
    border: 2px solid #000;
}
.cases__card:nth-child(n + 4) {
    display: none;
}
.cases__card.visible {
    opacity: 1;
    transform: translateY(0);
}
.cases__card-about {
    position: absolute;
    inset: auto 1.875rem 1.875rem;
    background: #ff6b01;
    text-transform: uppercase;
    padding: 1rem 0;
    border-radius: 80px;
    font-size: 1.5rem;
    font-weight: 700;
    cursor: pointer;
}
@media (max-width: 1023px) {
    .cases__card-about {
        font-size: 1.378rem;
        inset: auto 1.607rem 1.607rem;
    }
}
@media (max-width: 768px) {
    .cases__card-about {
        font-size: 1.607rem;
        inset: auto 0.804rem 0.804rem;
    }
}
@media (max-width: 1023px) {
    .cases__card {
        border: 1px solid #000;
    }
}
@media (max-width: 768px) {
    .cases__card:nth-child(n + 3) {
        display: none;
    }
}
.cases__pagination {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-top: 0.938rem;
    position: relative;
}
@media (max-width: 1023px) {
    .cases__pagination {
        padding: 0 4.592rem;
    }
}
@media (max-width: 768px) {
    .cases__pagination {
        padding: 0 3.214rem;
    }
}
.cases__page {
    display: inline-block;
    width: 25%;
    height: 0.5rem;
    border-radius: 4px;
    background-color: #202938;
    cursor: pointer;
    transition: background-color 0.3s;
    position: relative;
    overflow: hidden;
}
.cases__page span {
    position: absolute;
    inset: 0;
    background: #ff6b01;
    width: 0%;
    height: 100%;
}
.cases__page.active {
    background-color: #ff6b01;
    cursor: auto;
}
@media (max-width: 768px) {
    .cases__page {
        height: 1rem;
        width: 100%;
    }
}
.cases__more {
    display: block;
    margin-inline: auto;
    margin-top: 1.875rem;
    text-transform: uppercase;
    font-size: 1.5rem;
    font-weight: 700;
    background: #202938;
    border-radius: 80px;
    padding: 1rem 6.25rem;
    width: fit-content;
    transition: 0.3s all;
}
@media (max-width: 1023px) {
    .cases__more {
        font-size: 1.378rem;
    }
}
@media (max-width: 768px) {
    .cases__more {
        font-size: 1.607rem;
    }
}
.hero {
    display: flex;
    flex-direction: column;
    gap: 3.75rem;
    margin-inline: auto;
    color: #000;
    text-align: center;
    max-width: 72.125rem;
}
.hero__title {
    font-family: Unbounded, sans-serif;
    font-size: 3.125rem;
    font-weight: 900;
    text-transform: uppercase;
}
.hero__description {
    font-size: 1.625rem;
    font-weight: 400;
    color: #323232;
}
.tools {
    position: relative;
    background-color: #202938;
    padding: 0 2.5rem;
    z-index: 2;
}
.tools__content {
    max-width: 1500px;
    margin-inline: auto;
    padding: 6.25rem 0;
    display: flex;
    flex-direction: column;
    gap: 3.75rem;
}
.tools__title {
    font-family: Unbounded, sans-serif;
    font-size: 3.125rem;
    text-transform: uppercase;
    font-weight: 900;
}
.tools__container {
    display: flex;
    gap: 1.875rem;
}
.tools__area {
    font-weight: 100;
    font-size: 1.625rem;
    max-width: 21.875rem;
}
.tools__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.875rem;
}
.tools__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    border: 2px solid #ffffff;
    gap: 5px;
    padding: 1.25rem;
    border-radius: 20px;
    text-align: center;
    cursor: pointer;
    opacity: 0;
    transform: translateY(30px);
    transition:
        opacity 0.8s ease,
        transform 0.8s ease,
        background 0.3s ease,
        color 0.3s ease;
}
.tools__card * {
    transition: all 0.3s ease;
}
.tools__card:hover {
    background-color: #fff;
    color: #000;
}
.tools__card:hover img {
    filter: brightness(0.3);
}
.tools__card:nth-child(2):hover img {
    filter: brightness(0.8);
}
.tools__card.visible {
    opacity: 1;
    transform: translateY(0);
}
.tools__card-title {
    font-weight: 200;
    font-size: 1.625rem;
    margin-top: auto;
    margin-bottom: auto;
}
.tools__card img {
    height: 4.85rem;
}
.team {
    padding: 0 2.5rem;
    color: #000;
}
.team__content {
    max-width: 1500px;
    margin-inline: auto;
    display: flex;
    flex-direction: column;
}
.team__title {
    font-family: Unbounded, sans-serif;
    font-size: 3.125rem;
    text-transform: uppercase;
    font-weight: 900;
}
@media (max-width: 1023px) {
    .team__title {
        font-size: 3.788rem;
    }
}
@media (max-width: 768px) {
    .team__title {
        font-size: 3.696rem;
    }
}
.team__list {
    display: flex;
    gap: 1.875rem;
    margin-top: 3.75rem;
    overflow-x: scroll;
    overflow-y: hidden;
    padding-bottom: 1.25rem;
}
.team__list::-webkit-scrollbar {
    height: 0.5rem;
}
.team__list::-webkit-scrollbar-track {
    background-color: #202938;
    border-radius: 99px;
}
.team__list::-webkit-scrollbar-thumb {
    background-color: #ff6b01;
    border-radius: 99px;
}
@media (max-width: 1023px) {
    .team__list {
        margin-top: 3.444rem;
    }
}
@media (max-width: 768px) {
    .team__list {
        gap: 3.214rem;
    }
}
.team__card {
    flex: 0 0 calc(25% - 1.875rem);
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1.875rem;
    width: 100%;
    opacity: 0;
    transform: translateY(30px);
    transition:
        opacity 0.8s ease,
        transform 0.8s ease;
}
.team__card.visible {
    opacity: 1;
    transform: translateY(0);
}
.team__card img {
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: 20px;
}
@media (max-width: 1023px) {
    .team__card img {
        border-radius: 9px;
    }
}
@media (max-width: 1023px) {
    .team__card {
        gap: 1.722rem;
    }
}
@media (max-width: 768px) {
    .team__card {
        flex: 0 0 calc(50% - 1.875rem);
        gap: 2.411rem;
    }
}
.team__badge {
    position: absolute;
    top: 13px;
    left: 13px;
    background: #ff6b01;
    color: #fff;
    border-radius: 80px;
    padding: 0.313rem 1.875rem;
    text-transform: uppercase;
    font-weight: 700;
    font-size: 1.063rem;
    z-index: 9;
    white-space: nowrap;
}
@media (max-width: 1023px) {
    .team__badge {
        font-size: 0.918rem;
        padding: 0.23rem 1.378rem;
        left: 0.689rem;
        top: 0.689rem;
    }
}
@media (max-width: 768px) {
    .team__badge {
        font-size: 1.286rem;
        padding: 0.321rem 1.928rem;
        left: 0.964rem;
        top: 0.964rem;
    }
}
.team__main {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}
.team__name {
    font-family: Unbounded, sans-serif;
    font-size: 1.563rem;
    font-weight: 900;
    text-transform: uppercase;
}
@media (max-width: 1023px) {
    .team__name {
        font-size: 1.492rem;
    }
}
@media (max-width: 768px) {
    .team__name {
        font-size: 2.089rem;
    }
}
.team__description {
    font-size: 1.25rem;
    font-weight: 300;
}
@media (max-width: 1023px) {
    .team__description {
        font-size: 1.033rem;
    }
}
@media (max-width: 768px) {
    .team__description {
        font-size: 1.446rem;
    }
}
.team__pagination {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-top: 2rem;
    position: relative;
}
.team__page {
    display: inline-block;
    width: 25%;
    height: 8px;
    border-radius: 4px;
    background-color: #202938;
    cursor: pointer;
    transition: background-color 0.3s;
    position: relative;
    overflow: hidden;
}
.team__page span {
    position: absolute;
    inset: 0;
    background: #ff6b01;
    width: 0%;
    height: 100%;
}
.team__page.active {
    background-color: #ff6b01;
    cursor: auto;
}
@media (max-width: 768px) {
    .team__page {
        height: 1rem;
        width: 100%;
    }
}
.partners {
    color: #000;
    padding: 0 2.5rem;
}
.partners__content {
    max-width: 1500px;
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    gap: 3.75rem;
}
@media (max-width: 1023px) {
    .partners__content {
        gap: 3.444rem;
    }
}
@media (max-width: 768px) {
    .partners__content {
        gap: 3.214rem;
    }
}
.partners__title {
    font-family: Unbounded, sans-serif;
    font-size: 3.125rem;
    text-transform: uppercase;
    font-weight: 900;
}
@media (max-width: 1023px) {
    .partners__title {
        font-size: 3.788rem;
    }
}
@media (max-width: 768px) {
    .partners__title {
        font-size: 3.696rem;
    }
}
.partners__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.875rem;
}
@media (max-width: 1023px) {
    .partners__list {
        gap: 2.296rem;
    }
}
@media (max-width: 768px) {
    .partners__list {
        grid-template-columns: repeat(2, 1fr);
        column-gap: 3.214rem;
        row-gap: 2rem;
    }
}
.partners__card {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 2.5rem 1.75rem;
    border-radius: 20px;
    cursor: zoom-in;
    background-color: #202938;
    opacity: 0;
    transform: translateY(30px);
    transition:
        opacity 0.8s ease,
        transform 0.8s ease;
}
.partners__card.visible {
    opacity: 1;
    transform: translateY(0);
}
.partners__card img {
    height: 3.438rem;
}
@media (max-width: 1023px) {
    .partners__card img {
        height: 2.87rem;
    }
}
@media (max-width: 1023px) {
    .partners__card {
        padding: 2.066rem 1.378rem;
        border-radius: 9px;
    }
}
.contact {
    position: relative;
    color: #000;
    margin-inline: auto;
    padding: 0 2.5rem;
    opacity: 0;
    transform: translateY(30px);
    transition:
        opacity 0.8s ease,
        transform 0.8s ease;
}
.contact.visible {
    opacity: 1;
    transform: translateY(0);
}
.contact__title {
    font-family: Unbounded, sans-serif;
    font-size: 3.125rem;
    text-transform: uppercase;
    font-weight: 900;
}
.contact__image {
    display: block;
    margin: 0 auto;
    width: 100%;
    max-width: 1500px;
}
.contact__content {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
    gap: 1.875rem;
    position: absolute;
    inset: 0;
}
.contact__description {
    font-size: 1.625rem;
}
.contact__button {
    display: flex;
    align-items: center;
    gap: 15px;
    text-transform: uppercase;
    background-color: #ff6b01;
    padding: 0.625rem 2.5rem;
    border-radius: 80px;
    font-size: 1.375em;
    font-weight: 700;
    color: #fff;
    cursor: pointer;
}
@keyframes fadeInUp {
    0% {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
@keyframes fadeInImage {
    0% {
        opacity: 0;
        transform: scale(1.05);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}
@keyframes fadeInText {
    0% {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
@media (min-width: 1024px) {
    .effect-1 {
        top: -70%;
        left: 0;
    }
    .effect-2 {
        top: -70%;
        right: -15%;
    }
    .effect-3 {
        top: -70%;
        left: -5%;
    }
    .effect-4 {
        top: -50%;
        right: -10%;
    }
}
@media (max-width: 1023px) {
    .banner__content {
        gap: 0.947rem;
        padding: 0 4.592rem;
    }
    .banner__title {
        font-size: 3.099rem;
    }
    .banner__description {
        font-size: 1.607rem;
    }
    .hero {
        gap: 3.444rem;
    }
    .hero__title {
        font-size: 3.788rem;
    }
    .hero__description {
        font-size: 1.492rem;
    }
    .tools__content {
        padding: 4.592rem 0;
    }
    .tools__title {
        font-size: 3.788rem;
    }
    .tools__list {
        gap: 1.85rem;
    }
    .tools__area {
        font-size: 1.492rem;
        max-width: 17.5rem;
    }
    .tools {
        padding: 0 4.592rem;
    }
    .tools__card {
        padding: 0.689rem 1.5rem;
        border-radius: 9px;
        border: 1px solid #ffffff;
    }
    .tools__card-title {
        font-size: 1.263rem;
    }
    .tools__card img {
        height: 4rem;
    }
    .contact__title {
        font-size: 3.788rem;
    }
    .contact__description {
        font-size: 1.492rem;
    }
    .contact__content {
        gap: 2.296rem;
    }
    .contact__button {
        padding: 0.574rem 3.673rem;
        gap: 1.033rem;
        font-size: 1.378rem;
    }
    .contact__button img {
        height: 2.87rem;
        width: 2.87rem;
    }
}
@media (max-width: 768px) {
    .banner__title {
        font-size: 3.857rem;
    }
    .banner__title br {
        display: inline;
    }
    .banner__description {
        font-size: 2.089rem;
    }
    .banner__description br {
        display: none;
    }
    .hero {
        max-width: 51.425rem;
        gap: 3.214rem;
    }
    .hero__title {
        font-size: 3.696rem;
    }
    .hero__description {
        font-size: 1.928rem;
    }
    .tools {
        padding: 0 3.214rem;
    }
    .tools__container {
        flex-direction: column;
    }
    .tools__content {
        gap: 3.214rem;
    }
    .tools__title {
        text-align: center;
        font-size: 3.696rem;
    }
    .tools__area {
        max-width: none;
        text-align: center;
        font-size: 1.928rem;
    }
    .tools__list {
        grid-template-columns: repeat(2, 1fr);
        gap: 2.411rem;
    }
    .tools__card {
        padding: 1.125rem 1.7rem;
    }
    .tools__card-title {
        font-size: 1.768rem;
    }
    .tools__card img {
        height: 5rem;
    }
    .contact__title {
        font-size: 2.893rem;
    }
    .contact__description {
        font-size: 1.928rem;
    }
    .contact__content {
        gap: 2.411rem;
    }
    .contact__button {
        padding: 1.607rem 4.821rem;
        gap: 4.821rem;
        font-size: 1.928rem;
    }
    .contact__button img {
        height: 4.178rem;
        width: 4.178rem;
    }
}
