/* ================================
   SCROLL SNAP - FULL PAGE SCROLLING
   Each section snaps to full viewport
   ================================ */

/* Enable smooth scrolling */
html {
    scroll-behavior: smooth;
    overflow-y: scroll;
    height: 100%;
    /* Offsets anchor targets so they don't hide under the fixed navbar */
    scroll-padding-top: 80px;
}

body {
    overflow-y: visible;
    min-height: 100vh;
}

/* Sections fill the viewport but do NOT have scroll-snap-align */
/* Removing snap alignment stops headers being hidden behind the navbar */
section {
    min-height: 100vh;
    position: relative;
    /* Offsets section so it never lands behind the fixed navbar */
    scroll-margin-top: 80px;
}

/* Hero */
.hero {
    min-height: 100vh;
}

/* Ensure all main sections take full height and show content from top */
.services,
.process,
.showcase,
.why-website,
.faq,
.contact {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    /* Changed from center - shows content from top */
    padding-top: 80px;
    /* Account for fixed navbar */
    overflow-y: auto;
    /* Allow scrolling within section if needed */
}

/* Specific spacing overrides for a more compact layout */
.showcase {
    padding-top: 15px; /* Reduced padding over 'Our Expertise' */
}
.services {
    padding-top: 60px;
    padding-bottom: 20px; /* Reduced padding at the bottom of the page */
}


/* COMPACT ABOUT SECTION - SKETCH LAYOUT */
.about {
    height: 100vh;
    /* Strict height to match viewport */
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    /* Center content vertically */
    padding-top: 60px;
    /* Reduced specific padding for about */
    padding-bottom: 20px;
    overflow: hidden;
    /* Ensure no scroll bars appear inside */

    /* NEW: Ultra-subtle, larger gradient for smoother look */
    background: radial-gradient(80% 80% at 50% 40%, rgba(107, 78, 255, 0.12) 0%, rgba(255, 255, 255, 1) 100%);
    position: relative;
    z-index: 1;
}

/* Hide conflicting parallax background */
.about .parallax-bg {
    display: none !important;
}

.about .container {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    z-index: 2;
    max-width: 1200px;
}

.about .section-header {
    margin-bottom: var(--space-4);
    /* Reduced padding */
    text-align: center;
    flex-shrink: 0;

    /* SHIFT DOWN 0.4cm (approx 15px) */
    margin-top: 15px;
    position: relative;
    top: 5px;
    /* Fine tuning */
}

/* FIX HEADER COLOR - Ensure they are dark on light bg */
.about .section-title {
    color: var(--color-dark);
}

.about .section-tag {
    color: var(--color-primary);
    /* Or appropriate emphasis color */
}

/* SKETCH LAYOUT GRID */
.about-content {
    display: grid;
    grid-template-areas:
        "text video"
        "values values";
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr auto;
    /* Content takes space, values auto */
    gap: var(--space-6);
    /* Reduced gap */
    height: auto;
    width: 100%;
}

.about-text {
    grid-area: text;
    padding-right: var(--space-4);
    display: flex;
    flex-direction: column;
    justify-content: center;
    /* Center text block vertically */
}

.about-text p {
    margin-bottom: var(--space-3);
    /* Tighter paragraphs */
    font-size: 1.08rem;
    /* Increased by ~2pt for readability */
    line-height: 1.5;
    color: var(--color-dark);
}


.about-video,
.about-videowrapper {
    grid-area: video;
    height: 100%;
    width: 100%;
    max-height: 280px;
    /* FURTHER REDUCED HEIGHT to fit tabs */
    overflow: hidden;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-xl);

    /* ADJUSTED LIFT - DROPPED DOWN 0.2cm (~10px) from -20px to -10px */
    align-self: start;
    margin-top: -10px;
    transform: translateY(0);

    transition: transform 0.5s ease;
}

.about-video:hover,
.about-videowrapper:hover {
    transform: perspective(1000px) rotateY(0deg) translateY(-5px);
}

.about-video video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* VALUES ROW AT BOTTOM - ENSURE VISIBILITY */
.about-values {
    grid-area: values;
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    width: 100%;
    margin-top: var(--space-2);
    padding-bottom: var(--space-2);
    /* Ensure it doesn't get pushed out */
    flex-shrink: 0;
}

.value-card {
    padding: var(--space-3);
    /* Compact padding */
    flex: 1;
    text-align: center;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(107, 78, 255, 0.1);
    border-radius: var(--radius-lg);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 100px;
    /* Ensure minimum height for visibility */

    /* Fallback opacity just in case JS is slow */
    opacity: 1;
}

.value-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(107, 78, 255, 0.15);
    border-color: rgba(107, 78, 255, 0.3);
}

.value-icon {
    font-size: 1.5rem;
    /* Smaller icon */
    margin-bottom: var(--space-1);
}

.value-card h3 {
    font-size: 1rem;
    margin-bottom: 0;
    color: var(--color-dark);
}

.value-card p {
    font-size: 0.8rem;
    margin-top: var(--space-1);
    color: var(--color-gray);
    line-height: 1.3;
}

/* Adjust section padding for full-height sections */
.section {
    padding: var(--space-8) 0;
}

/* Footer doesn't need to snap */
.footer {
    scroll-snap-align: start;
    min-height: auto;
}

/* Smooth scroll for anchor links */
html {
    scroll-padding-top: 80px;
    /* Account for fixed navbar */
}

/* Override for mobile/small screens */
@media (max-width: 968px) {
    .about-content {
        grid-template-areas:
            "video"
            "text"
            "values";
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto;
        gap: var(--space-6);
        text-align: center;
        max-height: none;
        /* Allow scroll on mobile */
    }

    .about-text {
        padding-right: 0;
    }

    .about-video,
    .about-videowrapper {
        transform: none;
        max-height: 300px;
        width: 100%;
        margin-top: 0;
        align-self: center;
    }

    .about-values {
        flex-wrap: wrap;
        /* Wrap on small screens if needed */
        margin-top: var(--space-4);
    }
}

@media (max-width: 768px) {

    /* Keep snap on mobile but with proximity instead of mandatory */
    html,
    body {
        scroll-snap-type: y proximity;
    }

    section {
        scroll-snap-stop: normal;
    }

    .about,
    .services,
    .process,
    .showcase,
    .why-website,
    .faq,
    .contact {
        padding-top: 80px;
        /* Smaller navbar on mobile */
        height: auto;
        min-height: 100vh;
        overflow-y: auto;
        justify-content: flex-start;
    }

    .about {
        padding-bottom: 80px;
        overflow-y: auto;
        /* Allow scroll on mobile */
    }

    .value-card {
        min-width: 140px;
    }
}

/* Ensure content doesn't overflow issues */
.section .container {
    max-height: none;
    /* Allow natural height */
    overflow: visible;
}

/* Adjust timeline and long sections to show from top */
.process {
    min-height: 100vh;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 70px 0 var(--space-4) 0;
}

/* Services grid should show from top */
.services {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
}

/* Showcase should show from top */
.showcase {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
}

/* Make sure navbar stays on top of everything */
.navbar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 1000 !important;
}