/* --- Sleek Dark Tech Theme CSS Variables (V15 - Final Footer Alignment Fix) --- */
:root {
    --primary-dark-bg: #0D0D1A;    
    --secondary-dark-bg: #1A1A2B;  
    --accent-purple: #9B51E0;      
    --accent-cyan: #25B7C8;        
    --text-light: #E0E0E0;         
    --text-light-variant: #B0B0B0; 
    --text-heading: #FFFFFF;       
    --border-dark: #33334A;        
    --font-family: 'Poppins', sans-serif;
    --container-width: 1200px;
    --section-padding-y: 160px; 
    --border-radius: 10px;
}

/* --- General & Reset Styles --- */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: var(--font-family); line-height: 1.7; background-color: var(--primary-dark-bg); color: var(--text-light); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;}
.container { max-width: var(--container-width); margin: 0 auto; padding: 0 40px; }
section { padding: var(--section-padding-y) 0; position: relative; overflow: hidden; }
h1, h2, h3 { line-height: 1.3; font-weight: 700; color: var(--text-heading); }
a { text-decoration: none; color: var(--accent-cyan); transition: color 0.3s ease; }
a:hover { color: var(--accent-purple); }
ul { list-style: none; }
img { max-width: 100%; display: block; height: auto; image-rendering: -webkit-optimize-contrast; }
address { font-style: normal; }

/* --- Section Header Structure --- */
.section-header { text-align: center; margin-bottom: 100px; }
.section-header h2 { font-size: 3rem; margin-bottom: 30px; }
.section-header .section-subtitle { font-size: 1.2rem; color: #A0A0A0; max-width: 800px; margin: 0 auto; font-weight: 300; line-height: 1.6; }

/* --- Buttons --- */
.btn { display: inline-block; padding: 15px 38px; border-radius: var(--border-radius); font-weight: 600; transition: all 0.4s ease; cursor: pointer; border: 2px solid transparent; font-size: 1.05rem; text-transform: uppercase; letter-spacing: 0.5px; }
.btn-primary { background-color: var(--accent-purple); color: var(--text-heading); border-color: var(--accent-purple); }
.btn-primary:hover { background-color: var(--accent-cyan); border-color: var(--accent-cyan); transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3); }
.btn-secondary { background-color: transparent; color: var(--accent-cyan); border-color: var(--accent-cyan); }
.btn-secondary:hover { background-color: var(--accent-cyan); color: var(--primary-dark-bg); transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3); }

/* --- Header & Navigation --- */
header { background-color: rgba(13, 13, 26, 0.9); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); box-shadow: 0 4px 15px rgba(0,0,0,0.3); position: sticky; top: 0; z-index: 1000; }
header nav { display: flex; justify-content: space-between; align-items: center; height: 90px; }
.logo img { 
    width: 220px; 
    max-height: 70px; 
    height: auto; 
    object-fit: contain; 
    filter: drop-shadow(0 0 8px rgba(155, 81, 224, 0.3)); 
    transition: transform 0.3s ease;
}
.logo img:hover { transform: scale(1.05); }
.nav-links { display: flex; align-items: center; }
.nav-links li { margin-left: 40px; }
.nav-links a { color: var(--text-light); font-weight: 500; font-size: 1.05rem; padding: 5px 0; position: relative; }
.nav-links a:not(.btn)::after { content: ''; position: absolute; left: 0; bottom: 0; width: 0; height: 2px; background-color: var(--accent-cyan); transition: width 0.3s ease; }
.nav-links a:not(.btn):hover::after { width: 100%; }
.hamburger { display: none; cursor: pointer; background: none; border: none; font-size: 2rem; color: var(--text-light); z-index: 1001; }

/* --- Hero Section --- */
#hero { background: linear-gradient(rgba(0,0,0,0.7), rgba(0,0,0,0.8)), url('https://images.unsplash.com/photo-1510519138101-570d1dca3d66?q=80&w=2917&auto=format&fit=crop') no-repeat center center/cover; background-position: center 30%; height: calc(100vh - 90px); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: var(--text-heading); position: relative; }
.hero-content { z-index: 1; max-width: 900px; padding: 0 20px; }
.hero-content h1 { font-size: 5rem; line-height: 1.1; margin-bottom: 25px; text-shadow: 0 5px 15px rgba(0,0,0,0.5); }
.hero-content p { font-size: 1.6rem; margin-bottom: 50px; color: #C0C0C0; font-weight: 300; }
.hero-content .btn { margin: 10px; }

/* --- Services & Products Sections --- */
#services { background-color: var(--secondary-dark-bg); }
.grid-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; }
.card { background: var(--primary-dark-bg); padding: 50px; text-align: center; border: 1px solid var(--border-dark); border-radius: var(--border-radius); box-shadow: 0 8px 25px rgba(0,0,0,0.4); transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease; }
.card:hover { transform: translateY(-10px); box-shadow: 0 15px 40px rgba(0,0,0,0.6); border-color: var(--accent-cyan); }
.card i { font-size: 3rem; color: var(--accent-purple); margin-bottom: 25px; transition: color 0.4s ease; }
.card:hover i { color: var(--accent-cyan); }
.card h3 { font-size: 1.6rem; margin-bottom: 20px; color: var(--text-heading); }
.card p { color: var(--text-light-variant); font-size: 1.05rem; line-height: 1.7; }

.product-card { padding: 0; overflow: hidden; text-align: left; background: var(--primary-dark-bg); border: 1px solid var(--border-dark); box-shadow: 0 8px 25px rgba(0,0,0,0.4); transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease; }
.product-card:hover { transform: translateY(-10px); box-shadow: 0 15px 40px rgba(0,0,0,0.6); border-color: var(--accent-purple); }
.product-card img { border-radius: var(--border-radius) var(--border-radius) 0 0; width: 100%; height: 280px; object-fit: cover; transition: transform 0.5s ease; }
.product-card:hover img { transform: scale(1.08); }
.product-card .product-content { padding: 50px; }
.product-card h3 { text-align: left; font-size: 1.5rem; margin-bottom: 15px; }
.product-card p { color: var(--text-light-variant); font-size: 1.05rem; line-height: 1.7; }

/* --- About Us Section --- */
#about { background-color: var(--secondary-dark-bg); }
.about-content { display: flex; align-items: center; gap: 80px; flex-wrap: wrap; }
.about-image { flex: 1; min-width: 300px; }
.about-image img { border-radius: var(--border-radius); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4); object-fit: cover; height: 450px; width:100%; }
.about-text { flex: 1; min-width: 300px; }
#about .section-header { text-align: left; margin-bottom: 25px; } 
#about .section-header h2 { margin-bottom: 25px; } 
#about .section-header .section-subtitle { max-width: 100%; margin: 0 0 70px 0; text-align: left; }
.about-text ul { margin-top: 0; }
.about-text ul li { margin-bottom: 50px; display: flex; align-items: flex-start; font-size: 1.05rem; color: var(--text-light); line-height: 1.7; }
.about-text ul i { color: var(--accent-purple); margin-right: 18px; font-size: 1.4rem; flex-shrink: 0; transform: translateY(3px); }
.about-list-content { flex-grow: 1; }
.about-list-content strong { color: var(--text-heading); margin-right: 8px; display: inline-block; }

/* --- Contact Section --- */
#contact { background-color: var(--primary-dark-bg); text-align: center; }
.contact-info { margin-top: 20px; } 

/* --- Footer --- */
footer { background: var(--secondary-dark-bg); color: #A0A0B0; padding: 80px 0 40px 0; border-top: 1px solid var(--border-dark); font-size: 0.95rem; }
.footer-main-layout { 
    display: grid;
    grid-template-columns: auto 1fr auto; /* col1: logo, col2: details, col3: quicklinks */
    gap: 40px; 
    align-items: flex-start; 
    margin-bottom: 60px;
}

.footer-col-logo {
    /* Adjust width/max-width if needed, or let image size dictate */
}
.footer-logo { 
    max-width: 260px; /* Control logo size */
    width: 100%; 
    height: auto;
    display: block;
}

.footer-col-details {
    text-align: left; /* All text in this column is left-aligned */
    padding-left: 30px; /* Add some space between logo and this details block */
}
.footer-col-details h3 { 
    color: var(--text-heading); 
    font-size: 1.7rem; 
    margin-bottom: 10px; 
}
.footer-col-details .footer-tagline {
    font-size: 1rem;
    color: var(--text-light);
    margin-bottom: 20px;
    line-height: 1.6;
    max-width: 450px; /* Prevent tagline from becoming too wide */
}
.footer-col-details address p { 
    margin-bottom: 8px; 
    line-height: 1.6; 
    color: var(--text-light-variant);
    font-size: 0.9rem;
}
.footer-col-details address p:last-of-type { margin-bottom: 0; }
.footer-col-details address p i { 
    margin-right: 10px; 
    color: var(--accent-cyan); 
    width: 18px; 
    text-align: center; 
}
.footer-divider {
    border: 0;
    height: 1px;
    background-color: var(--border-dark);
    margin: 20px 0; 
}

.footer-col-quicklinks {
    text-align: left; /* Default text align for the block */
}
.footer-col-quicklinks h4 { 
    color: var(--text-heading); 
    font-size: 1.2rem; 
    margin-bottom: 20px; 
    text-align: center; /* Center the "Quick Links" heading */
}
.footer-col-quicklinks ul { 
    /* To center the UL block itself under the centered H4 */
    display: table; /* Or use flexbox on parent and margin auto on ul */
    margin: 0 auto;
}
.footer-col-quicklinks ul li { 
    margin-bottom: 10px; 
    text-align: left; /* Ensure list items are left-aligned */
}
.footer-col-quicklinks ul li a { 
    color: #A0A0B0; 
    transition: color 0.3s ease; 
}
.footer-col-quicklinks ul li a:hover { 
    color: var(--accent-cyan); 
}

.footer-copyright { text-align: center; padding-top: 40px; border-top: 1px solid var(--border-dark); margin-top: 40px; }
.footer-copyright p { margin-bottom: 0; }


/* --- Responsive Styles --- */
@media (max-width: 1024px) { /* Tablet */
    :root { --section-padding-y: 120px; }
    .container { padding: 0 30px; }
    .section-header h2 { font-size: 2.5rem; margin-bottom: 20px; }
    .section-header { margin-bottom: 80px; }
    .hero-content h1 { font-size: 4rem; }
    .hero-content p { font-size: 1.4rem; }
    .about-content { gap: 40px; }
    #about .section-header { text-align: center; }
    #about .section-header .section-subtitle { margin: 0 auto 60px auto; }
    .about-image img { height: auto; }
    .card { padding: 40px; }
    .product-card .product-content { padding: 40px; }
    .footer-main-layout { 
        grid-template-columns: 1fr; 
        text-align: center; 
        gap: 30px; /* Reduced gap for stacked items */
    } 
    .footer-col-logo, .footer-col-details, .footer-col-quicklinks {
        text-align: center; 
        padding-left: 0; /* Reset padding for details column */
    }
    .footer-logo { margin: 0 auto 20px auto; } 
    .footer-col-details .footer-tagline { max-width: 100%; }
    .footer-col-quicklinks { margin-top: 20px; }
    .footer-col-quicklinks h4 { text-align: center; }
    .footer-col-quicklinks ul { margin: 0 auto; display: table; } /* Center UL */
}

@media (max-width: 768px) { /* Mobile Landscape & Large Phones */
    :root { --section-padding-y: 100px; }
    .container { padding: 0 20px; }
    .section-header h2 { font-size: 2.2rem; margin-bottom: 20px; }
    .section-header { margin-bottom: 60px; }
    .hero-content h1 { font-size: 3rem; line-height: 1.2; }
    .hero-content p { font-size: 1.2rem; margin-bottom: 30px; }
    .hero-content .btn { padding: 12px 25px; font-size: 0.95rem; margin: 8px; }
    header nav { height: 80px; }
    .logo img { height: 50px; max-width: 170px; } 
    .nav-links { display: none; flex-direction: column; width: 100%; background-color: var(--primary-dark-bg); position: absolute; top: 80px; left: 0; text-align: center; padding: 20px 0; box-shadow: 0 5px 15px rgba(0,0,0,0.3); z-index: 999; }
    .nav-links.active { display: flex; }
    .nav-links li { margin: 15px 0; }
    .nav-links a { font-size: 1.1rem; }
    .hamburger { display: block; }
    .about-content { flex-direction: column; gap: 30px; }
    .grid-container { grid-template-columns: 1fr; } 
    .card { padding: 30px; }
    .product-card .product-content { padding: 30px; }
    .product-card img { height: 220px; }
    .about-text ul li { margin-bottom: 30px; }
    #about .section-header .section-subtitle { margin-bottom: 40px; }
    .footer-copyright { margin-top: 20px; }
}

@media (max-width: 480px) { /* Mobile Portrait */
    :root { --section-padding-y: 80px; }
    .section-header h2 { font-size: 2rem; margin-bottom: 15px;} 
    .section-header { margin-bottom: 40px; }
    .hero-content h1 { font-size: 2.5rem; }
    .hero-content p { font-size: 1.1rem; }
    .btn { padding: 12px 20px; font-size: 0.9rem; }
    .hero-content .btn { display: block; margin: 10px auto; width: fit-content; } 
    .card i { font-size: 2.5rem; }
    .card h3 { font-size: 1.4rem; margin-bottom: 15px; }
    .card p { font-size: 1rem; }
    .product-card img { height: 200px; }
    .card { padding: 25px; }
    .product-card .product-content { padding: 25px; }
    #about .section-header .section-subtitle { margin-bottom: 30px; font-size: 1rem; }
    .about-text ul li { margin-bottom: 25px; font-size: 1rem; }
    .contact-info p { font-size: 1.1rem; }
    .contact-info i { font-size: 1.3rem; }
    .footer-logo { max-width: 180px; } 
    .footer-col-details h3 { font-size: 1.5rem; }
    .footer-col-details p { font-size: 0.95rem; }
    .footer-main-layout { gap: 30px; }
}