/*==============================================================
    RESPONSIVE.CSS
    PART 1
    Desktop & Large Screens
==============================================================*/


/*==============================================================
ULTRA WIDE (1920px+)
==============================================================*/

@media (min-width:1920px){

:root{

    --container-width:1600px;

}

.container{

    max-width:1600px;

}

.hero{

    min-height:100vh;

}

.hero-content{

    max-width:760px;

}

.hero h1{

    font-size:5rem;

    line-height:1.1;

}

.hero p{

    font-size:1.35rem;

}

.section{

    padding:140px 0;

}

.section-title{

    margin-bottom:80px;

}

.service-card,
.project-card,
.stat-card{

    padding:45px;

}

.timeline{

    max-width:1500px;

}

.footer{

    padding-top:120px;

}

}


/*==============================================================
LARGE DESKTOP (1600px)
==============================================================*/

@media (max-width:1600px){

.container{

    max-width:1400px;

}

.hero h1{

    font-size:4.3rem;

}

.hero p{

    font-size:1.2rem;

}

.service-card{

    padding:40px;

}

.project-card{

    padding:35px;

}

.timeline{

    max-width:1300px;

}

}


/*==============================================================
STANDARD DESKTOP (1400px)
==============================================================*/

@media (max-width:1400px){

.container{

    max-width:1200px;

}

.hero{

    min-height:92vh;

}

.hero h1{

    font-size:3.9rem;

}

.hero-content{

    max-width:650px;

}

.hero-buttons{

    margin-top:35px;

}

.navbar{

    padding:18px 0;

}

.section{

    padding:110px 0;

}

.section-title{

    margin-bottom:65px;

}

.service-card{

    padding:35px;

}

.project-card{

    padding:30px;

}

.timeline-card{

    padding:30px;

}

.news-card img{

    height:260px;

}

.footer{

    padding-top:90px;

}

}


/*==============================================================
LARGE LAPTOP (1200px)
==============================================================*/

@media (max-width:1200px){

.container{

    max-width:1140px;

}

.hero h1{

    font-size:3.4rem;

}

.hero h2{

    font-size:2rem;

}

.hero p{

    font-size:1.05rem;

}

.hero-video{

    object-fit:cover;

}

.hero-buttons{

    gap:15px;

}

.hero-buttons .btn{

    padding:14px 28px;

}

.about-image img{

    max-width:100%;

}

.about-content{

    padding-left:20px;

}

.services-grid{

    gap:25px;

}

.projects-grid{

    gap:25px;

}

.service-card{

    padding:30px;

}

.project-card{

    padding:25px;

}

.project-image img{

    height:260px;

    object-fit:cover;

}

.stat-card{

    padding:30px;

}

.timeline-item{

    padding:20px 50px;

}

.timeline-card{

    padding:28px;

}

.news-card img{

    height:240px;

}

.footer-logo{

    width:170px;

}

.footer h4{

    font-size:1.15rem;

}

}

/*==============================================================
FOOTER BOTTOM / LEGAL LINKS
==============================================================*/

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    padding-top: 8px;
}

.footer-copyright {
    margin: 0;
    color: rgba(255, 255, 255, 0.65);
    font-size: 13px;
    line-height: 1.7;
}

.footer-legal-links {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
}

.footer-legal-links a {
    color: rgba(255, 255, 255, 0.65);
    font-size: 13px;
    text-decoration: none;
    transition: color .3s ease;
}

.footer-legal-links a:hover {
    color: var(--primary);
}

.footer-legal-links span {
    color: rgba(255, 255, 255, 0.20);
    font-size: 12px;
}


/*==============================================================
FOOTER BOTTOM — MOBILE
==============================================================*/

@media (max-width: 767px) {

    .footer-bottom {
        flex-direction: column;
        justify-content: center;
        text-align: center;
        gap: 12px;
    }

    .footer-copyright {
        text-align: center;
    }

    .footer-legal-links {
        justify-content: center;
        gap: 8px;
    }

    .footer-legal-links a {
        font-size: 12px;
    }

}


/*==============================================================
DESKTOP UTILITIES
==============================================================*/

@media (min-width:1200px){

.desktop-only{

    display:block !important;

}

.mobile-only{

    display:none !important;

}

.hide-desktop{

    display:none !important;

}

.show-desktop{

    display:block !important;

}

.navbar-nav{

    gap:20px;

}

.dropdown-menu{

    min-width:260px;

}

.hero-content{

    z-index:5;

}

}
/*==============================================================
    RESPONSIVE.CSS
    PART 2A
    Laptop (992px) & Mobile Navigation
==============================================================*/


/*==============================================================
LAPTOP
==============================================================*/

@media (max-width:992px){

.container{

    max-width:960px;
    padding-left:20px;
    padding-right:20px;

}

/*==============================
HEADER
==============================*/

.header{

    padding:12px 0;

}

.logo img{

    max-height:60px;

}

.navbar{

    padding:15px 0;

}

/*==============================
MOBILE MENU
==============================*/

.mobile-toggle{

    display:flex;

    align-items:center;

    justify-content:center;

    width:46px;

    height:46px;

    border-radius:8px;

    background:rgba(255,255,255,.08);

    color:#fff;

    cursor:pointer;

    transition:.35s;

}

.mobile-toggle:hover{

    background:var(--primary);

    color:#081C2D;

}

.nav-menu{

    position:fixed;

    top:0;

    right:-100%;

    width:320px;

    height:100vh;

    background:#071725;

    padding:100px 35px;

    transition:.45s ease;

    overflow-y:auto;

    z-index:9999;

    box-shadow:-15px 0 40px rgba(0,0,0,.35);

}

.nav-menu.active{

    right:0;

}

.nav-menu ul{

    display:flex;

    flex-direction:column;

    gap:18px;

}

.nav-menu ul li{

    width:100%;

}

.nav-menu ul li a{

    display:block;

    color:#fff;

    padding:14px 0;

    border-bottom:1px solid rgba(255,255,255,.08);

}

.menu-overlay{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.65);

    opacity:0;

    visibility:hidden;

    transition:.35s;

    z-index:9998;

}

.menu-overlay.active{

    opacity:1;

    visibility:visible;

}

/*==============================
HERO
==============================*/

.hero{

    min-height:90vh;

    padding-top:120px;

}

.hero-content{

    max-width:100%;

    text-align:center;
    
    display:flex;
    
    flex-direction:column;
    
    align-items:center;

}

.hero h1{

    font-size:3rem;

    line-height:1.2;

}

.hero h2{

    font-size:1.8rem;

}

.hero p{

    font-size:1rem;

    max-width:700px;

    margin:auto;

}

.hero-buttons{

    justify-content:center;

    flex-wrap:wrap;

    gap:15px;
    
    align-items:center;

}

.hero-video{

    object-position:center;

}

/*==============================
ABOUT
==============================*/

.about-grid{

    display:grid;

    grid-template-columns:1fr;

    gap:60px;

}

.about-image{

    text-align:center;

}

.about-content{

    padding:0;

}

/*==============================
SERVICES
==============================*/

.services-grid{

    grid-template-columns:repeat(2,1fr);

    gap:25px;

}

.service-card{

    padding:30px;

}

/*==============================
PROJECTS
==============================*/

.projects-grid{

    grid-template-columns:repeat(2,1fr);

    gap:25px;

}

.project-card{

    padding:25px;

}

.project-image img{

    height:240px;

    object-fit:cover;

}

/*==============================
STATISTICS
==============================*/

.stats-grid{

    grid-template-columns:repeat(2,1fr);

    gap:25px;

}

.stat-card{

    padding:30px;

}

/*==============================
CTA
==============================*/

.cta-content{

    text-align:center;

}

.cta-buttons{

    justify-content:center;

    flex-wrap:wrap;

}

/*==============================
UTILITIES
==============================*/

.desktop-only{

    display:none !important;

}

.mobile-only{

    display:block !important;

}

.hide-tablet{

    display:none !important;

}

.show-tablet{

    display:block !important;

}

.section{

    padding:90px 0;

}

.section-title{

    margin-bottom:50px;

}

}
/*==============================================================
    RESPONSIVE.CSS
    PART 2B
    Tablet (768px) Layout
==============================================================*/

@media (max-width:768px){

/*==============================================================
CONTAINER
==============================================================*/

.container{
    max-width:100%;
    padding-left:18px;
    padding-right:18px;
}

/*==============================================================
SECTION SPACING
==============================================================*/

.section{
    padding:75px 0;
}

.section-title{
    margin-bottom:40px;
}

.section-title h2{
    font-size:2rem;
}

.section-title p{
    font-size:.95rem;
}

/*==============================================================
HEADER
==============================================================*/

.header{
    padding:12px 0;
}

.logo img{
    max-height:52px;
}

.mobile-toggle{
    width:44px;
    height:44px;
}

/*==============================================================
HERO
==============================================================*/

.hero{
    min-height:100vh;
    padding-top:110px;
    text-align:center;
}

.hero-content{
    max-width:100%;
}

.hero h1{
    font-size:2.5rem;
    line-height:1.2;
}

.hero h2{
    font-size:1.5rem;
}

.hero p{
    font-size:.95rem;
}

.hero-buttons{
    flex-direction:column;
    align-items:center;
    gap:15px;
}

.hero-buttons .btn{
    width:100%;
    max-width:320px;
}

.hero-scroll{
    display:none;
}

/*==============================================================
ABOUT
==============================================================*/

.about-grid{
    grid-template-columns:1fr;
    gap:40px;
}

.about-image{
    order:1;
}

.about-content{
    order:2;
}

/*==============================================================
SERVICES
==============================================================*/

.services-grid{
    grid-template-columns:1fr;
    gap:22px;
}

/*==============================================================
PROJECTS
==============================================================*/

.projects-grid{
    grid-template-columns:1fr;
    gap:22px;
}

.project-image img{
    height:230px;
}

/*==============================================================
STATISTICS
==============================================================*/

.stats-grid{
    grid-template-columns:1fr;
    gap:20px;
}

/*==============================================================
TIMELINE
==============================================================*/

.timeline::before{
    left:20px;
}

.timeline-item{
    width:100%;
    left:0 !important;
    padding-left:70px;
    padding-right:0;
    margin-bottom:45px;
    text-align:left;
}

.timeline-item::before{
    left:10px !important;
    right:auto;
}

.timeline-item::after{
    left:20px !important;
    width:25px;
}

.timeline-card{
    padding:25px;
}

.timeline-icon{
    width:60px;
    height:60px;
    font-size:22px;
}

/*==============================================================
TESTIMONIALS
==============================================================*/

.testimonial-card{
    padding:28px;
}

.testimonial-author{
    flex-direction:column;
    text-align:center;
    gap:15px;
}

/*==============================================================
NEWS
==============================================================*/

.news-grid{
    grid-template-columns:1fr;
}

.news-card img{
    height:220px;
}

/*==============================================================
CONTACT
==============================================================*/

.contact-grid{
    grid-template-columns:1fr;
    gap:35px;
}

.contact-form{
    padding:30px;
}

.contact-info{
    padding:30px;
}

/*==============================================================
FOOTER
==============================================================*/

.footer{
    text-align:center;
}

.footer-grid{
    grid-template-columns:1fr;
    gap:35px;
}

.footer-links{
    justify-content:center;
}

.footer-bottom{
    flex-direction:column;
    gap:15px;
}

/*==============================================================
TABLES
==============================================================*/

table{
    display:block;
    overflow-x:auto;
    white-space:nowrap;
}

/*==============================================================
FORMS
==============================================================*/

input,
textarea,
select{
    width:100%;
    font-size:16px;
}

button{
    width:auto;
}

/*==============================================================
UTILITIES
==============================================================*/

.text-center-md{
    text-align:center;
}

.mt-md-4{
    margin-top:2rem;
}

.mb-md-4{
    margin-bottom:2rem;
}

.hide-mobile{
    display:none !important;
}

.show-mobile{
    display:block !important;
}

img{
    max-width:100%;
    height:auto;
}

iframe{
    width:100%;
}

}
/*==============================================================
    RESPONSIVE.CSS
    PART 3
    Mobile Phones & Final Optimizations
==============================================================*/


/*==============================================================
PHONES (576px)
==============================================================*/

@media (max-width:576px){

.container{
    padding-left:15px;
    padding-right:15px;
}

/* Hero */

.hero{
    min-height:100vh;
    padding-top:90px;
}

.hero h1{
    font-size:2rem;
    line-height:1.2;
}

.hero h2{
    font-size:1.2rem;
}

.hero p{
    font-size:.95rem;
    margin:20px auto;
}

.hero-buttons{
    width:100%;
}

.hero-buttons .btn{
    width:100%;
    max-width:100%;
    padding:14px 20px;
}

/* Section */

.section{
    padding:60px 0;
}

.section-title{
    margin-bottom:35px;
}

.section-title h2{
    font-size:1.8rem;
}

/* Cards */

.service-card,
.project-card,
.stat-card,
.timeline-card,
.news-card,
.testimonial-card,
.contact-form,
.contact-info{
    padding:22px;
}

/* Timeline */

.timeline-card h3{
    font-size:1.2rem;
}

.timeline-icon{
    width:50px;
    height:50px;
    font-size:18px;
}

/* Images */

.project-image img,
.news-card img{
    height:200px;
}

/* Footer */

.footer{
    padding-top:60px;
}

.footer-logo{
    max-width:150px;
}

.footer-bottom{
    text-align:center;
    font-size:.9rem;
}

}


/*==============================================================
SMALL DEVICES (400px)
==============================================================*/

@media (max-width:400px){

.hero h1{
    font-size:1.7rem;
}

.hero h2{
    font-size:1.05rem;
}

.hero p{
    font-size:.9rem;
}

.section-title h2{
    font-size:1.5rem;
}

.btn{
    font-size:.9rem;
    padding:12px 18px;
}

.logo img{
    max-height:45px;
}

.mobile-toggle{
    width:40px;
    height:40px;
}

.service-card,
.project-card,
.timeline-card{
    padding:18px;
}

.timeline-icon{
    width:45px;
    height:45px;
    font-size:16px;
}

.footer{
    font-size:.9rem;
}

}


/*==============================================================
LANDSCAPE MOBILE
==============================================================*/

@media (max-height:500px) and (orientation:landscape){

.hero{
    min-height:auto;
    padding:120px 0 80px;
}

.hero-video{
    height:100%;
    object-fit:cover;
}

}


/*==============================================================
LARGE MOBILE (600–767px)
==============================================================*/

@media (min-width:600px) and (max-width:767px){

.services-grid,
.projects-grid{

    grid-template-columns:repeat(2,1fr);

}

.stats-grid{

    grid-template-columns:repeat(2,1fr);

}

}


/*==============================================================
RESPONSIVE HELPERS
==============================================================*/

.w-100-mobile{

    width:100%;

}

.text-center-mobile{

    text-align:center;

}

.mt-mobile{

    margin-top:25px;

}

.mb-mobile{

    margin-bottom:25px;

}

.p-mobile{

    padding:20px;

}

.hide-xs{

    display:none !important;

}


/*==============================================================
FLEX HELPERS
==============================================================*/

.flex-mobile{

    display:flex;

    flex-direction:column;

}

.justify-mobile{

    justify-content:center;

}

.align-mobile{

    align-items:center;

}


/*==============================================================
IMAGES
==============================================================*/

img{

    max-width:100%;

    height:auto;

}

svg{

    max-width:100%;

}


/*==============================================================
BUTTONS
==============================================================*/

.btn{

    white-space:nowrap;

}

.btn-block-mobile{

    width:100%;

}


/*==============================================================
FORMS
==============================================================*/

input,
textarea,
select{

    border-radius:8px;

}

textarea{

    min-height:140px;

}


/*==============================================================
EMBEDDED CONTENT
==============================================================*/

iframe,
video{

    width:100%;

    max-width:100%;

}


/*==============================================================
PERFORMANCE
==============================================================*/

@media (max-width:768px){

.parallax,
.parallax-bg{

    transform:none !important;

}

}


/*==============================================================
SAFE AREA SUPPORT (iPhone)
==============================================================*/

@supports (padding:max(0px)){

body{

    padding-left:max(0px, env(safe-area-inset-left));

    padding-right:max(0px, env(safe-area-inset-right));

    padding-bottom:max(0px, env(safe-area-inset-bottom));

}

}


/*==============================================================
END RESPONSIVE.CSS
==============================================================*/