/*==================================================
  GOOGLE FONTS
==================================================*/

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Poppins:wght@300;400;500;600;700;800&display=swap');

/*==================================================
  RESET
==================================================*/

*,
*::before,
*::after{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Inter',sans-serif;
    background:#ffffff;
    color:#334155;
    line-height:1.7;
    overflow-x:hidden;
}

img{
    width:100%;
    display:block;
}

a{
    text-decoration:none;
    color:inherit;
}

ul{
    list-style:none;
}

button,
input,
textarea,
select{
    font-family:inherit;
    outline:none;
    border:none;
}

section{
    padding:90px 0;
}

.container{
    width:min(90%,1200px);
    margin:auto;
}

/*==================================================
  VARIABLES
==================================================*/

:root{

    --primary:#0056B8;
    --primary-dark:#003f87;

    --secondary:#1E293B;

    --accent:#00AEEF;

    --white:#ffffff;

    --light:#F8FAFC;

    --border:#e5e7eb;

    --text:#475569;

    --heading:#0f172a;

    --radius:14px;

    --shadow:
        0 12px 35px rgba(0,0,0,.08);

    --transition:.35s ease;

}

/*==================================================
  TYPOGRAPHY
==================================================*/

h1,
h2,
h3,
h4{
    font-family:'Poppins',sans-serif;
    color:var(--heading);
    line-height:1.2;
}

h1{
    font-size:3.4rem;
    font-weight:700;
}

h2{
    font-size:2.6rem;
    margin-bottom:20px;
}

h3{
    font-size:1.35rem;
}

p{
    color:var(--text);
    margin-bottom:20px;
}

.section-title{

    text-align:center;

    max-width:720px;

    margin:auto auto 70px;

}

.section-tag{

    display:inline-block;

    color:var(--primary);

    font-weight:600;

    margin-bottom:12px;

    letter-spacing:.5px;

    text-transform:uppercase;

    font-size:.9rem;

}

/*==================================================
  BUTTONS
==================================================*/

.btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    padding:15px 34px;

    background:var(--primary);

    color:#fff;

    border-radius:50px;

    font-weight:600;

    transition:var(--transition);

    box-shadow:var(--shadow);

}

.btn:hover{

    background:var(--primary-dark);

    transform:translateY(-3px);

}

.btn-outline{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:15px 34px;

    border:2px solid var(--primary);

    color:var(--primary);

    border-radius:50px;

    font-weight:600;

    transition:var(--transition);

}

.btn-outline:hover{

    background:var(--primary);

    color:#fff;

}

/*==================================================
  HEADER
==================================================*/

header{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    z-index:999;

    transition:.3s;

    background:transparent;

}

header.sticky{

    background:#ffffff;

    box-shadow:0 6px 18px rgba(0,0,0,.08);

}

header .container{

    display:flex;

    justify-content:space-between;

    align-items:center;

    min-height:90px;

}

.logo img{

    width:170px;

}

/*==================================================
  NAVIGATION
==================================================*/

nav ul{

    display:flex;

    align-items:center;

    gap:35px;

}

nav a{

    font-weight:600;

    color:var(--heading);

    transition:var(--transition);

}

nav a:hover{

    color:var(--primary);

}

.header-btn{

    margin-left:30px;

}

.menu-toggle{

    display:none;

    cursor:pointer;

    font-size:28px;

    color:var(--heading);

}

/*==================================================
  HERO
==================================================*/

.hero{

    min-height:100vh;

    display:flex;

    align-items:center;

    background:linear-gradient(135deg,#F8FAFC,#ffffff);

    padding-top:120px;

}

.hero-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:70px;

    align-items:center;

}

.hero-content .tag{

    display:inline-block;

    background:#E0F2FE;

    color:var(--primary);

    padding:10px 22px;

    border-radius:50px;

    margin-bottom:20px;

    font-weight:600;

}

.hero-content h1{

    margin-bottom:25px;

}

.hero-content p{

    font-size:1.08rem;

    max-width:600px;

}

.hero-buttons{

    display:flex;

    flex-wrap:wrap;

    gap:18px;

    margin:35px 0;

}

.hero-features{

    display:flex;

    flex-wrap:wrap;

    gap:30px;

    margin-top:25px;

}

.hero-features div{

    display:flex;

    align-items:center;

    gap:10px;

    font-weight:600;

}

.hero-features i{

    color:var(--primary);

}

.hero-image{

    position:relative;

}

.hero-image img{

    border-radius:24px;

    box-shadow:var(--shadow);

}

/*==================================================
  ABOUT
==================================================*/

.about{

    background:var(--light);

}

.about-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:70px;

    align-items:center;

}

.about-image img{

    border-radius:22px;

    box-shadow:var(--shadow);

}

.about-list{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:20px;

    margin:35px 0;

}

.about-list div{

    display:flex;

    align-items:center;

    gap:12px;

    font-weight:600;

}

.about-list i{

    width:34px;

    height:34px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:var(--primary);

    color:#fff;

    font-size:14px;

}

/*==================================================
  SIMPLE ANIMATIONS
==================================================*/

.hero img,
.about img{

    transition:transform .5s ease;

}

.hero img:hover,
.about img:hover{

    transform:scale(1.03);

}

.service-card,
.testimonial-card,
.gallery-item{

    transition:.35s ease;

}
/*==================================================
  SERVICES
==================================================*/

.services{
    background:var(--white);
}

.services-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;
}

.service-card{
    background:#fff;
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:var(--shadow);
    transition:var(--transition);
    border:1px solid var(--border);
}

.service-card:hover{
    transform:translateY(-10px);
    box-shadow:0 18px 45px rgba(0,0,0,.12);
}

.service-card img{
    height:250px;
    object-fit:cover;
    transition:.5s;
}

.service-card:hover img{
    transform:scale(1.08);
}

.service-content{
    padding:30px;
}

.service-content i{
    width:70px;
    height:70px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:rgba(0,86,184,.08);
    color:var(--primary);
    font-size:28px;
    margin-bottom:20px;
    transition:var(--transition);
}

.service-card:hover .service-content i{
    background:var(--primary);
    color:#fff;
}

.service-content h3{
    margin-bottom:15px;
}

.service-content p{
    margin-bottom:0;
}

/*==================================================
  WHY CHOOSE US
==================================================*/

.why-us{
    background:linear-gradient(135deg,#1E293B,#0F172A);
    color:#fff;
}

.why-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:70px;
    align-items:center;
}

.why-us h2,
.why-us p,
.why-list div{
    color:#fff;
}

.why-us .section-tag{
    color:#7DD3FC;
}

.why-image img{
    border-radius:24px;
    box-shadow:0 15px 45px rgba(0,0,0,.35);
}

.why-list{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:20px;
    margin:35px 0;
}

.why-list div{
    display:flex;
    align-items:center;
    gap:12px;
    font-weight:500;
}

.why-list i{
    color:#38BDF8;
    font-size:18px;
}

.why-us .btn{
    margin-top:10px;
    background:#fff;
    color:var(--primary);
}

.why-us .btn:hover{
    background:var(--accent);
    color:#fff;
}

/*==================================================
  GALLERY
==================================================*/

.gallery{
    background:var(--light);
}

.gallery-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:25px;
}

.gallery-item{
    position:relative;
    overflow:hidden;
    border-radius:18px;
    box-shadow:var(--shadow);
}

.gallery-item img{
    width:100%;
    height:280px;
    object-fit:cover;
    transition:.5s;
}

.gallery-item:hover img{
    transform:scale(1.12);
}

.gallery-item::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(to top,
        rgba(0,0,0,.45),
        rgba(0,0,0,0));
    opacity:0;
    transition:.35s;
}

.gallery-item:hover::after{
    opacity:1;
}

.gallery-btn{
    text-align:center;
    margin-top:60px;
}

/*==================================================
  CARD HOVER EFFECTS
==================================================*/

.service-card,
.gallery-item{
    cursor:pointer;
}

.service-card:hover h3{
    color:var(--primary);
}

/*==================================================
  IMAGE ANIMATIONS
==================================================*/

.service-card img,
.gallery-item img,
.why-image img{
    will-change:transform;
}

/*==================================================
  SECTION SPACING
==================================================*/

.services,
.why-us,
.gallery{
    position:relative;
}

.services::before,
.gallery::before{
    content:"";
    position:absolute;
    top:0;
    left:50%;
    transform:translateX(-50%);
    width:80px;
    height:4px;
    background:var(--primary);
    border-radius:20px;
}

/*==================================================
  SMALL TRANSITIONS
==================================================*/

.service-card *,
.gallery-item *,
.why-us *{
    transition:var(--transition);
}
/*==================================================
    TESTIMONIALS
==================================================*/

.testimonials{
    background:var(--white);
}

.testimonial-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;
}

.testimonial-card{
    background:#fff;
    border-radius:var(--radius);
    padding:40px 35px;
    box-shadow:var(--shadow);
    border:1px solid var(--border);
    transition:var(--transition);
    position:relative;
}

.testimonial-card:hover{
    transform:translateY(-10px);
    box-shadow:0 20px 45px rgba(0,0,0,.12);
}

.testimonial-card i{
    font-size:42px;
    color:var(--primary);
    margin-bottom:20px;
}

.testimonial-card p{
    margin-bottom:25px;
    font-style:italic;
}

.testimonial-card h4{
    margin-bottom:6px;
    color:var(--heading);
}

.testimonial-card span{
    color:var(--text);
    font-size:.95rem;
}

/*==================================================
    CONTACT
==================================================*/

.contact{
    background:var(--light);
}

.contact-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:start;
}

.contact-info h2{
    margin-bottom:20px;
}

.contact-info p{
    margin-bottom:35px;
}

.contact-item{
    display:flex;
    align-items:flex-start;
    gap:18px;
    margin-bottom:28px;
}

.contact-item i{
    width:58px;
    height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--primary);
    color:#fff;
    border-radius:50%;
    font-size:22px;
    flex-shrink:0;
}

.contact-item h4{
    margin-bottom:8px;
}

.contact-item a{
    color:var(--text);
    transition:var(--transition);
}

.contact-item a:hover{
    color:var(--primary);
}

.contact-info .btn{
    margin-top:15px;
}

/*==================================================
    CONTACT FORM
==================================================*/

.contact-form{
    background:#fff;
    padding:40px;
    border-radius:var(--radius);
    box-shadow:var(--shadow);
}

.contact-form form{
    display:flex;
    flex-direction:column;
    gap:20px;
}

.contact-form input,
.contact-form textarea,
.contact-form select{

    width:100%;
    padding:16px 18px;
    border:1px solid var(--border);
    border-radius:10px;
    background:#fff;
    color:var(--text);
    transition:var(--transition);
    resize:none;

}

.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus{

    border-color:var(--primary);
    box-shadow:0 0 0 4px rgba(0,86,184,.08);

}

.contact-form button{
    cursor:pointer;
    width:100%;
}

/*==================================================
    GOOGLE MAP
==================================================*/

.map{
    padding:0;
}

.map iframe{
    width:100%;
    height:450px;
    border:0;
    display:block;
}

/*==================================================
    FOOTER
==================================================*/

footer{

    background:#0F172A;
    color:#CBD5E1;
    padding:70px 0 30px;

}

.footer-content{

    text-align:center;

}

.footer-content img{

    width:180px;
    margin:0 auto 25px;

}

.footer-content p{

    color:#CBD5E1;
    max-width:650px;
    margin:0 auto 20px;

}

.footer-contact{

    margin:35px 0;

}

.footer-contact a{

    display:inline-flex;
    align-items:center;
    gap:12px;
    color:#fff;
    font-weight:600;
    transition:var(--transition);

}

.footer-contact a:hover{

    color:var(--accent);

}

.footer-contact i{

    width:46px;
    height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:var(--primary);

}

footer hr{

    border:none;
    height:1px;
    background:rgba(255,255,255,.12);
    margin:40px 0 25px;

}

footer .copyright{

    margin:0;
    font-size:.95rem;
    color:#94A3B8;

}

/*==================================================
    FORM PLACEHOLDERS
==================================================*/

::placeholder{
    color:#94A3B8;
}

/*==================================================
    FORM TRANSITIONS
==================================================*/

.contact-form input,
.contact-form textarea,
.contact-form select,
.contact-form button{
    transition:var(--transition);
}

/*==================================================
    ICON HOVER EFFECTS
==================================================*/

.contact-item:hover i{

    background:var(--primary-dark);
    transform:rotate(8deg);

}

.footer-contact:hover i{

    background:var(--accent);

}

/*==================================================
    SECTION DIVIDERS
==================================================*/

.testimonials::before,
.contact::before{

    content:"";
    display:block;
    width:80px;
    height:4px;
    background:var(--primary);
    border-radius:30px;
    margin:0 auto 70px;

}


/*==================================================
    RESPONSIVE - LARGE DEVICES
==================================================*/

@media (max-width:1200px){

    h1{
        font-size:3rem;
    }

    h2{
        font-size:2.3rem;
    }

    .hero-grid,
    .about-grid,
    .why-grid,
    .contact-grid{
        gap:50px;
    }

}

/*==================================================
    RESPONSIVE - LAPTOPS
==================================================*/

@media (max-width:992px){

    section{
        padding:80px 0;
    }

    h1{
        font-size:2.6rem;
    }

    h2{
        font-size:2rem;
    }

    .hero-grid,
    .about-grid,
    .why-grid,
    .contact-grid{
        grid-template-columns:1fr;
    }

    .hero-content{
        order:2;
        text-align:center;
    }

    .hero-image{
        order:1;
    }

    .hero-content p{
        max-width:100%;
    }

    .hero-buttons,
    .hero-features{
        justify-content:center;
    }

    .services-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .gallery-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .testimonial-grid{
        grid-template-columns:1fr;
    }

    .about-list,
    .why-list{
        grid-template-columns:1fr 1fr;
    }

}

/*==================================================
    RESPONSIVE - TABLETS
==================================================*/

@media (max-width:768px){

    section{
        padding:70px 0;
    }

    h1{
        font-size:2.2rem;
    }

    h2{
        font-size:1.8rem;
    }

    .container{
        width:92%;
    }

    /* Mobile Navigation */

    .menu-toggle{
        display:block;
        z-index:1001;
    }

    .header-btn{
        display:none;
    }

    nav{

        position:fixed;
        top:90px;
        left:-100%;
        width:100%;
        background:#fff;
        box-shadow:0 15px 40px rgba(0,0,0,.08);
        transition:.35s ease;

    }

    nav.active{
        left:0;
    }

    nav ul{

        flex-direction:column;
        gap:0;
        padding:25px 0;

    }

    nav ul li{
        width:100%;
    }

    nav ul li a{

        display:block;
        padding:16px 25px;

    }

    nav ul li a:hover{

        background:var(--light);

    }

    .services-grid,
    .gallery-grid,
    .about-list,
    .why-list{
        grid-template-columns:1fr;
    }

    .hero-features{

        flex-direction:column;
        align-items:center;
        gap:15px;

    }

    .hero-buttons{

        flex-direction:column;

    }

    .btn,
    .btn-outline{

        width:100%;

    }

    .contact-form{

        padding:30px;

    }

    .gallery-item img{

        height:240px;

    }

}

/*==================================================
    RESPONSIVE - MOBILE
==================================================*/

@media (max-width:576px){

    header .container{
        min-height:80px;
    }

    .logo img{
        width:145px;
    }

    h1{
        font-size:2rem;
    }

    h2{
        font-size:1.6rem;
    }

    .hero{
        padding-top:110px;
    }

    .hero-content .tag{

        font-size:.85rem;

    }

    .service-content{

        padding:25px;

    }

    .testimonial-card{

        padding:30px 25px;

    }

    .contact-form{

        padding:25px;

    }

    .contact-item{

        gap:15px;

    }

    .contact-item i{

        width:50px;
        height:50px;
        font-size:18px;

    }

    .footer-content img{

        width:150px;

    }

    .map iframe{

        height:320px;

    }

}

/*==================================================
    ACCESSIBILITY
==================================================*/

:focus-visible{

    outline:3px solid var(--accent);
    outline-offset:3px;

}

::selection{

    background:var(--primary);
    color:#fff;

}

/*==================================================
    UTILITIES
==================================================*/

.text-center{
    text-align:center;
}

.mt-1{margin-top:10px;}
.mt-2{margin-top:20px;}
.mt-3{margin-top:30px;}
.mt-4{margin-top:40px;}
.mt-5{margin-top:50px;}

.mb-1{margin-bottom:10px;}
.mb-2{margin-bottom:20px;}
.mb-3{margin-bottom:30px;}
.mb-4{margin-bottom:40px;}
.mb-5{margin-bottom:50px;}

/*==================================================
    IMAGE OPTIMIZATION
==================================================*/

img{

    max-width:100%;
    height:auto;

}

/*==================================================
    SMOOTH TRANSITIONS
==================================================*/

a,
button,
.service-card,
.gallery-item,
.testimonial-card,
.contact-item i{

    transition:all .3s ease;

}

/*==================================================
    REDUCE MOTION
==================================================*/

@media (prefers-reduced-motion:reduce){

    *,
    *::before,
    *::after{

        animation:none !important;
        transition:none !important;
        scroll-behavior:auto !important;

    }

}

/*==================================================
    PRINT
==================================================*/

@media print{

    header,
    footer,
    .btn,
    .menu-toggle{

        display:none;

    }

    body{

        background:#fff;
        color:#000;

    }

}