/* Reset & Base Styles */
@import url('https://fonts.googleapis.com/css2?family=Muli:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Outfit:wght@100..900&display=swap&subset=cyrillic,latin-ext');

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Outfit', sans-serif;
    background-color: #191C26;
    color: #fff;
    line-height: 1;
    overflow-x: hidden;
    font-weight: 400;
}

p {
    font-family: 'Muli', sans-serif;
    font-size: 18px;
    line-height: 170%;
    color: #A9AFC3;
}

a {
    text-decoration: none;
    color: inherit;
    transition: all 0.4s ease-in-out;
}

ul {
    list-style: none;
}

img {
    max-width: 100%;
    display: block;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
}

.clearfix::after {
    content: "";
    clear: both;
    display: table;
}

/* Animations */
.animate-on-scroll {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
    will-change: opacity, visibility, transform;
}

.animate-on-scroll.is-visible {
    opacity: 1;
    visibility: visible;
    transform: none;
}

/* Animation Types (Initial States) */
.animate-on-scroll[data-animation="fadeInUp"] {
    transform: translateY(40px);
}

.animate-on-scroll[data-animation="fadeInLeft"] {
    transform: translateX(-40px);
}

.animate-on-scroll[data-animation="fadeInRight"] {
    transform: translateX(40px);
}

.animate-on-scroll[data-animation="fadeIn"] {
    transform: scale(0.95);
}

.animate-on-scroll.is-visible[data-animation="fadeIn"] {
    transform: scale(1);
}

/* Animation Delays */
.delay-100 { transition-delay: 0.1s; }
.delay-200 { transition-delay: 0.2s; }
.delay-300 { transition-delay: 0.3s; }
.delay-400 { transition-delay: 0.4s; }
.delay-500 { transition-delay: 0.5s; }
.delay-600 { transition-delay: 0.6s; }


/* Typography & Components */
.section-number {
    display: block;
    font-size: 1.2rem;
    color: #555;
    margin-bottom: 10px;
}

.page-number {
    position: absolute;
    top: 100px;
    right: 100px;
    font-family: Muli;
    font-style: normal;
    font-weight: bold;
    font-size: 100px;
    line-height: 100%;
    color: #FFFFFF;
    opacity: 0.05;
    z-index: 0;
}

.page-number.bottom {
    top: auto;
    bottom: 105px;
}

.subtitle {
    display: inline-block;
    color: #A9AFC3;
    font-size: 16px;
    letter-spacing: 0.05em;
    line-height: 150%;
    text-transform: uppercase;
    position: relative;
    padding-left: 86px;
    margin-bottom: 19px;
    font-family: 'Outfit', sans-serif;
}

.subtitle:before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    width: 60px;
    height: 1px;
    background-color: #a8afc2;
    transform: translateY(-50%);
}

h1, h2, h3 {
    font-weight: 700;
    color: #fff;
}

h1 { 
    font-size: 120px; 
    line-height: 100%;
    margin-bottom: 31px;
}

h2 { 
    font-size: 64px; 
    line-height: 110%;
    margin-bottom: 27px;
}

h3 { 
    font-size: 22px; 
    line-height: 130%;
    font-weight: 500;
}

.btn {
    display: inline-block;
    padding: 0 36px;
    height: 60px;
    line-height: 58px;
    border: 2px solid;
    cursor: pointer;
    font-weight: bold;
    text-transform: uppercase;
    font-size: 20px;
    border-radius: 50px;
    transition: all 0.3s;
}

.btn-primary {
    background-color: #fff;
    color: #000;
}

.btn-outline {
    border: 2px solid #fff;
    color: #fff;
}

.btn-outline:hover {
    background-color: #ff7a18;
    color: #fff;
    border-color: #ff7a18;
}

.btn-default {
    color: #FFFFFF;
    border: 2px solid #fff;
    background: transparent;
}
.btn-default:hover {
    background-color: #ff7a18;
    color: #fff;
    border-color: #ff7a18;
}

.btn-default2 {
    display: inline-block;
    font-size: 16px;
    line-height: 150%;
    text-transform: uppercase;
    padding-bottom: 10px;
    position: relative;
    color: #fff;
    margin-top: 30px;
}
.btn-default2:before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #ff7a18;
    transition: all 0.4s ease-in-out;
}
.btn-default2:hover:before {
    width: 0;
}
.btn-default2 img {
    padding-left: 11px;
    display: inline;
}


/* Left Sidebar */
.left-sidebar {
    float: left;
    position: fixed;
    top: 0;
    left: 0;
    width: 180px;
    background-color: #070a11;
    z-index: 999;
    height: 100%;
    text-align: center;
}

.menu-btn {
    margin-top: 70px;
    display: inline-block;
    position: relative;
    cursor: pointer;
}

.sidebar-social {
    position: relative;
    top: calc(100vh - 500px);
}

.sidebar-social:before {
    content: '';
    position: absolute;
    bottom: -77px;
    left: 50%;
    height: 100px;
    width: 1px;
    background: #A9AFC3;
    transform: translateX(-50%);
    margin-left: 3px;
}

.sidebar-social li {
    display: inline-block;
    margin-bottom: 105px;
    position: relative;
}

.sidebar-social li a {
    font-family: Muli;
    font-size: 14px;
    line-height: 150%;
    text-transform: uppercase;
    color: #A9AFC3;
    transform: rotate(-90deg);
    display: inline-block;
    flex: none;
    order: 1;
    align-self: center;
    margin: 0px 60px;
    white-space: nowrap;
}

/* Wrapper */
.wrapper {
    float: right;
    width: calc(100% - 180px);
}


/* Responsive Mobile Menu (Right Side) */
.responsive-mobile-menu {
    position: fixed;
    top: 0;
    right: -350px;
    width: 350px;
    height: 100%;
    background: #000;
    overflow-y: auto;
    z-index: 10000;
    padding: 80px 50px;
    opacity: 0;
    visibility: hidden;
    transition: all 0.4s ease-in-out;
}

.responsive-mobile-menu.show {
    opacity: 1;
    visibility: visible;
    right: 0;
}

.responsive-logo {
    margin-bottom: 50px;
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.4s ease-in-out 0.4s;
}

.responsive-logo img {
    max-width: 150px;
}

.responsive-mobile-menu.show .responsive-logo {
    opacity: 1;
    transform: translateY(0);
}

.responsive-mobile-menu ul {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.4s ease-in-out 0.6s;
}

.responsive-mobile-menu.show ul {
    opacity: 1;
    transform: translateY(0);
}

.responsive-mobile-menu ul li {
    margin-bottom: 20px;
}

.responsive-mobile-menu ul li a {
    color: #fff;
    font-size: 18px;
    font-family: 'Muli', sans-serif;
    text-transform: uppercase;
}

.close-menu-btn {
    position: absolute;
    top: 30px;
    right: 30px;
    color: #fff;
    font-size: 24px;
    cursor: pointer;
}


/* Language Switcher */
.lang-switcher {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 1000;
    background: rgba(0,0,0,0.8);
    padding: 10px;
    border-radius: 5px;
}

.lang-switcher button {
    background: transparent;
    border: 1px solid #555;
    color: #fff;
    padding: 5px 10px;
    cursor: pointer;
    margin: 0 2px;
}

.lang-switcher button:hover {
    background: #333;
}


/* Navbar */
.navbar {
    padding: 0 0 50px;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 100;
    background: transparent;
}

.navbar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 30px;
    max-width: 1400px;
    width: 100%;
}

.logo {
    margin-top: 9px;
}

.logo img {
    max-width: 150px;
    height: auto;
}

.nav-links {
    display: flex;
    gap: 56px;
}

.nav-links a {
    color: #FFFFFF;
    font-size: 18px;
    font-family: 'Muli', sans-serif;
}

.nav-links a:hover {
    color: #ff7a18;
}

.nav-contact {
    display: flex;
    align-items: center;
}

.nav-contact span {
    color: #FFFFFF;
    font-size: 20px;
    font-family: 'Muli', sans-serif;
    margin-right: 57px;
}

/* Burger in Navbar (Hidden on Desktop) */
.burger {
    display: none;
    cursor: pointer;
    z-index: 1000;
}
.burger div {
    width: 25px;
    height: 2px;
    background-color: #fff;
    margin: 5px;
    transition: all 0.3s ease;
}


/* Hero */
.hero-section {
    padding: 285px 0 163px;
    background: url('../assets/images/resources/img.png') #121318;
    background-repeat: no-repeat;
    background-position: top right;
    position: relative;
    min-height: 100vh;
    background-size: auto 100%;
}

.hero-content {
    max-width: 770px;
}

.hero-content h1 span {
    display: inline-block;
    background-color: #ff7a18;
    width: 20px;
    height: 20px;
    border-radius: 100px;
    position: relative;
    left: -17px;
}

.play-video-div {
    display: flex;
    align-items: center;
}

.poly1 {
    width: 130px;
    height: 130px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.poly1:before {
    content: '';
    position: absolute;
    width: 130px;
    height: 130px;
    background-image: url('../assets/images/icon2.svg');
    background-repeat: no-repeat;
    background-size: cover;
    transition: transform 0.4s;
}

.poly1:hover:before {
    transform: scale(0.8);
}

.poly2 {
    width: 100px;
    height: 100px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.poly2:before {
    content: '';
    position: absolute;
    width: 100px;
    height: 100px;
    background-image: url('../assets/images/icon3.svg');
    background-repeat: no-repeat;
    background-size: cover;
}

.play-video {
    display: inline-block;
    width: 80px;
    height: 80px;
    background-color: #ff7a18;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: scale(0.9);
    z-index: 10;
}

.pl-text {
    padding-left: 10px;
}

.pl-text h3 {
    font-size: 16px;
    text-transform: uppercase;
    border-bottom: 1px solid #2A2E3D;
    padding-bottom: 10px;
    margin-bottom: 4px;
}

.pl-text span {
    font-size: 18px;
    font-family: 'Muli', sans-serif;
    color: #fff;
}

/* Sections General */
section {
    padding: 210px 0;
    position: relative;
}

.row {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -15px;
}

.col-half {
    flex: 0 0 50%;
    max-width: 50%;
    padding: 0 15px;
}

.fixed-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-repeat: no-repeat;
    z-index: -1;
}

.bg3 {
    background: url('../assets/images/bg3.png') #121318;
    background-position: top right;
}

.bg4 {
    background: #191c26;
}

.bg5 {
    background: url('../assets/images/bg5.png') #121318;
    background-position: top right;
}

.bg6 {
    background: url('../assets/images/bg3.png') #121318;
    background-position: 5% center;
}

.bg-position {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
    z-index: -1;
}

.left-position {
    background-image: url('../assets/images/resources/img2.jpg');
    background-position: left;
}

.right-position {
    background-image: url('../assets/images/resources/img.png');
    background-position: right;
}

/* About Section */
.about-section {
    background-image: url('../assets/images/resources/about_us_bg.jpg');
    background-size: auto 130%;
    background-position: left;
    background-repeat: no-repeat;
    background-color: #191c26;
    padding: 210px 0;
}
.about-section .row {
    justify-content: flex-end;
}
.about-section .col-half.content-col {
    max-width: 560px;
    flex: none;
    width: 100%;
}


/* Services */
.services-section .section-header {
    margin-bottom: 60px;
    max-width: 560px;
}

.services-grid {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -15px;
}

.service-item {
    flex: 0 0 25%;
    max-width: 25%;
    padding: 50px 30px 125px;
    text-align: center;
    background: linear-gradient(180deg, #191C26 0%, rgba(25, 28, 38, 0) 100%);
    transition: all 0.3s;
}
.service-item:nth-child(even) {
     background: linear-gradient(180deg, #080A12 0%, rgba(8, 10, 18, 0) 100%);
}

.svs-icon {
    width: 130px;
    height: 130px;
    background-color: #22252e;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 36px;
}

.svs-icon img {
    width: 50%;
}

.service-item h3 {
    color: #A9AFC3;
    font-weight: 500;
    font-size: 20px;
    margin-bottom: 45px;
    min-height: 52px;
}

/* Portfolio */
.portfolio-section .section-header {
    margin-bottom: 50px;
}
.portfolio-section .section-header .btn-default2 {
    float: right;
    margin-top: -80px;
}

.portfolio-grid {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -15px;
}

.portfolio-item {
    flex: 0 0 33.333%;
    max-width: 33.333%;
    padding: 0;
    position: relative;
    cursor: pointer;
}

.portfolio-item:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(25, 28, 38, 0) 0%, #191C26 100%);
    transition: all 0.4s;
    z-index: 1;
}

.portfolio-item:hover:before {
    background: linear-gradient(180deg, rgba(8, 10, 18, 0) 0%, #ff7a18 100%);
    mix-blend-mode: soft-light;
}

.portfolio-item img {
    width: 100%;
}

.figcaption {
    position: absolute;
    bottom: 23px;
    left: 0;
    width: 100%;
    padding: 0 50px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(30px);
    transition: all 0.4s;
    z-index: 2;
}

.figcaption h2 {
    font-size: 24px;
    line-height: 1.3;
    margin-bottom: 15px;
}

.figcaption img {
    width: 50px;
}

.portfolio-item:hover .figcaption {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}


/* Footer */
#footer {
    background: url('../assets/images/footer-bg.jpg');
    background-size: cover;
    padding: 0;
}
.footer-top {
    padding: 210px 0 166px;
}
.newsletter-area h2 {
    font-size: 60px;
    margin-bottom: 30px;
}
.newsletter-form {
    margin-top: 30px;
}
.newsletter-form input {
    background: transparent;
    border: 0;
    border-bottom: 1px solid #393f4f;
    width: 350px;
    color: #A9AFC3;
    font-size: 18px;
    padding: 10px 0;
    float: left;
}
.newsletter-form button {
    float: left;
    width: 60px;
    height: 60px;
    background-color: #ff7a18;
    border: 0;
    margin-left: 44px;
    margin-top: -20px;
    position: relative;
    cursor: pointer;
}

.testimonial-area {
    float: right;
    max-width: 460px;
}
.testi-head {
    display: flex;
    align-items: center;
    margin-bottom: 56px;
}
.testi-thumb img {
    filter: grayscale(100%);
    margin-right: 48px;
}
.testi-info h3 {
    font-size: 22px;
    margin-bottom: 9px;
}
.testi-info p {
    font-size: 16px;
}
.testimonial-area > p {
    font-size: 22px;
    line-height: 1.5;
    position: relative;
}
.testimonial-area > p:before {
    content: '';
    position: absolute;
    bottom: -62px;
    right: 5px;
    width: 100px;
    height: 100px;
    background-image: url('../assets/images/quote.svg');
    background-repeat: no-repeat;
}
.signature {
    margin-top: 71px;
}

.footer-bottom {
    border-top: 1px solid #393f4f;
    padding: 45px 0;
}
.footer-row {
    display: flex;
    justify-content: space-between;
}
.footer-col {
    flex: 1;
}
.footer-logo {
    margin-bottom: 20px;
    max-width: 150px;
}
.footer-col h4 {
    font-family: Muli;
    font-size: 16px;
    margin-bottom: 6px;
    color: #fff;
}
.footer-col p {
    font-size: 16px;
}


/* Media Queries */

/* Tablet/Small Desktop (max 1200px) */
@media (max-width: 1200px) {
    .left-sidebar { display: none; }
    .wrapper { width: 100%; float: none; }
    .navbar .container { padding: 0 15px; }
    .burger { display: block; }
    .nav-links, .nav-contact { display: flex; } 
    .burger { display: none; }
    .main-banner-text > h1 { font-size: 80px; }
}

@media (max-width: 991px) {
    .nav-links, .nav-contact { display: none; }
    .burger { display: block; }
    
    h1 { font-size: 60px; }
    h2 { font-size: 40px; }
    
    .col-half { flex: 0 0 100%; max-width: 100%; margin-bottom: 50px; }
    .service-item, .portfolio-item { flex: 0 0 50%; max-width: 50%; }
    .page-number { display: none; }
    .hero-section { padding-top: 150px; }
    .stat-item { padding: 30px; }
    .main-blog-item { margin-left: 0; margin-top: 30px; }
    .why-we-sec { padding-left: 0; }
    .about-section .row { justify-content: center; }
    .footer-row { flex-wrap: wrap; }
    .footer-col { flex: 0 0 50%; max-width: 50%; margin-bottom: 30px; }
}

@media (max-width: 576px) {
    .animate-on-scroll[data-animation="fadeInRight"],
    .animate-on-scroll[data-animation="fadeInLeft"] {
        transform: translateX(0);
    }
    .service-item, .portfolio-item { flex: 0 0 100%; max-width: 100%; }
    .footer-col { flex: 0 0 100%; max-width: 100%; }
    .newsletter-form input { width: 100%; }
    .newsletter-form button { margin-left: 0; margin-top: 20px; }
    .main-banner-text > h1 { font-size: 40px; }
}

/* Modal */
.modal {
    display: none; 
    position: fixed; 
    z-index: 20000; 
    left: 0;
    top: 0;
    width: 100%; 
    height: 100%; 
    overflow: auto; 
    background-color: rgba(0,0,0,0.8); 
    backdrop-filter: blur(5px);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.modal.show {
    display: block;
    opacity: 1;
}

.modal-content {
    background-color: #191C26;
    margin: 2% auto; 
    padding: 40px;
    border: 1px solid #333;
    width: 80%; 
    max-width: 800px;
    position: relative;
    border-radius: 5px;
    box-shadow: 0 5px 30px rgba(0,0,0,0.5);
    transform: translateY(-20px);
    transition: transform 0.3s ease;
}

.modal.show .modal-content {
    transform: translateY(0);
}

.close-modal {
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
    position: absolute;
    top: 15px;
    right: 20px;
    transition: color 0.3s;
}

.close-modal:hover,
.close-modal:focus {
    color: #ff7a18;
    text-decoration: none;
    cursor: pointer;
}

#modal-title {
    margin-top: 0;
    color: #fff;
    font-size: 32px;
    margin-bottom: 20px;
    border-bottom: 1px solid #333;
    padding-bottom: 15px;
}

#modal-body {
    color: #A9AFC3;
    font-size: 18px;
    line-height: 1.6;
}

@media (max-width: 768px) {
    .modal-content {
        width: 90%;
        margin: 20% auto;
        padding: 30px 20px;
    }
}
