/* ================= RESPONSIVE ================= */

/* ================= LARGE LAPTOPS / DESKTOPS (Max 1200px) ================= */
@media (max-width: 1200px) {

    /* Hero */
    .hero-layout {
        gap: 40px;
        padding: 25px 0px;
    }

    .hero-main {
        font-size: 56px;
    }

    .hero-bold {
        font-size: 56px;
    }

    /* Testimonials */
    .testimonial-card {
        padding: 28px;
        flex-direction: column;
        align-items: flex-start;
        /* gap: 24px; */
    }

    .testimonial-author {
        margin-bottom: 0;
        max-width: 100%;
        width: 100%;
    }

    .author-info {
        text-align: left;
        margin-top: 10px;
        align-self: flex-start;
    }
}

/* ================= TABLETS (Max 900px) ================= */
@media (max-width: 900px) {

    /* Header */
    .menu-bar {
        padding: 12px 20px;
    }

    .logo {
        font-size: 16px;
    }

    /* Menu Content */
    .menu-grid {
        grid-template-columns: 1fr;
    }

    .menu-item {
        padding: 20px 24px;
        font-size: 20px;
    }

    .menu-item img {
        height: 60px;
    }

    /* Hero Section */
    .hero-section {
        /* position: relative; removed to keep fixed */
        /* Unfix for better scroll on small heights */
        /* height: auto; removed */
        /* min-height: auto; removed */
        padding-top: 100px;
        /* Space for fixed header */
        padding-bottom: 60px;
    }

    .hero-layout {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 40px;
    }

    .hero-left {
        text-align: center;
        order: 2;
        /* Image on top usually better, or keep text top? Keep text top for impact */
        order: 0;
    }

    .hero-right {
        height: 300px;
        width: 300px;
        /* Fixed width for perfect circle */
        order: 1;
        /* If we want image below text */
        margin: 0 auto 60px;
        /* Center horizontally + bottom margin */
    }

    .carousel-img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 50%;
        /* Circular */
    }

    .hero-main,
    .hero-bold {
        font-size: 42px;
    }

    .hero-small {
        font-size: 18px;
    }

    .hero-sub {
        font-size: 16px;
        margin: 0 auto 30px;
    }

    /* Marquee */
    .marquee-row span {
        font-size: 40px;
        -webkit-text-stroke: 1px #0B0B0B;
    }

    .keyword-marquee {
        display: none;
    }

    /* Sticky Slides Vertical Fix */
    /* Sticky Slides Vertical Fix */
    .sticky-slide {
        padding: 80px 20px;
        min-height: 100vh;
        position: sticky;
        /* Explicitly ensure sticky */
        top: 0;
        z-index: 2;
        /* Ensure it slides over hero */
        background: #FEFEEA;
        /* Ensure background covers hero */
        /* Margin removed from generic class to avoid double gap */
    }

    .slide-two {
        /* Margin removed to fix double scroll gap */
        padding-top: 80px;
        background: #2F5D50;
        /* Force Dark Green */
        position: sticky;
        top: 0;
    }

    .slide-two-header {
        margin-bottom: 40px;
    }

    .zoom-title {
        font-size: 48px;
    }

    .works-subtitle {
        font-size: 16px;
    }

    /* Works Grid */
    .works-row {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .work-card {
        padding: 20px;
    }

    .work-image {
        height: 180px;
    }

    /* Services Sticky Wrapper */
    .services-sticky-wrapper {
        height: auto;
        /* Remove large scroll height */
    }

    .services-section {
        /* position: relative; REMOVED */
        /* min-height: auto; REMOVED */
        padding: 80px 20px;
        /* top: 0; */
        min-height: 100vh;
        /* Restore sticky height */
        z-index: 3;
    }

    .services-title {
        font-size: 48px;
    }

    .service-row {
        grid-template-columns: 1fr;
        gap: 40px;
        margin-bottom: 80px;
        text-align: center;
        /* Align text left */
        display: flex;
        flex-direction: column;
    }

    .service-row.reverse {
        direction: ltr;
        /* Reset direction */
    }


    .service-row.reverse>* {
        direction: ltr;
    }

    .service-content h3 {
        font-size: 32px;
    }

    .service-content ul {
        display: inline-block;
        text-align: center;
    }

    /* Work Says / Testimonials */
    .work-says-sticky {
        /* position: relative; */
        /* Restore sticky */
        /* min-height: auto; */
        /* top: 0; */
        padding: 80px 20px;
        z-index: 4;
        min-height: 100vh;
    }

    .testimonials-title {
        font-size: 48px;
    }

    .testimonial-card {
        padding: 24px;
        height: auto;
        /* Auto height */
        min-height: auto;
    }

    .testimonial-card:nth-child(even) {
        flex-direction: column;
    }

    .testimonial-text {
        font-size: 16px;
    }

    /* Contact */
    .contact-section {
        padding: 80px 20px 0px;
    }

    .contact-title {
        font-size: 42px;
    }

    .contact-title-box {
        font-size: 32px;
    }

    .contact-split {
        grid-template-columns: 1fr;
        gap: 60px;
        padding: 20px;
    }

    .contact-info {
        gap: 40px;
        text-align: center;
    }

    .add {
        gap: 30px;
        align-items: center;
        /* Center align info blocks */
    }

    .info-block {
        flex-direction: column;
        text-align: center;
    }

    .contact-socials {
        justify-content: center;
    }

    .contact-form-box {
        margin: 40px 20px 0;
        /* Add outer spacing */
    }

    .options-grid {
        grid-template-columns: 1fr;
        /* Single column options */
    }
}

/* ================= MOBILE (Max 600px) ================= */
@media (max-width: 600px) {

    /* Global Padding */
    header.menu-wrapper {
        padding: 10px 15px 0;
    }

    .menu-bar {
        padding: 10px 16px;
    }

    /* Hero */
    .hero-main,
    .hero-bold {
        font-size: 36px;
    }

    .hero-right {
        display: block;
        height: 300px;
        /* Match tablet size */
        margin-bottom: 30px;
    }

    .hero-cta {
        width: auto;
        display: block;
        padding: 14px 20px;
    }

    /* Works */
    .zoom-title {
        font-size: 36px;
    }

    .works-row {
        width: 100%;
        /* Ensure full width */
    }

    /* Services */
    .services-title,
    .testimonials-title {
        font-size: 36px;
    }

    .service-content h3 {
        font-size: 28px;
    }

    /* Contact */
    .contact-title {
        font-size: 32px;
    }

    .contact-menu {
        padding: 20px;
    }

    .contact-form button {
        width: 100%;
    }

    /* Contact Box - Clean responsive logic */
    .contact-split {
        padding: 20px !important;
        /* Ensure parent has padding */
    }

    .contact-form-box {
        width: 100% !important;
        max-width: 100% !important;
        margin: 30px 0 0 !important;
        /* Top margin only */
        padding: 24px 20px !important;
        border-radius: 20px;
        box-sizing: border-box;
    }

    /* Input Fields - Reduced size as requested */
    .contact-form input,
    .contact-form textarea,
    .contact-form select {
        padding: 10px 14px !important;
        border-radius: 12px;
        font-size: 13px !important;
        width: 100%;
    }

    .form-row {
        flex-direction: column;
        gap: 10px;
    }

    /* Floating Buttons Mobile Size */
    .floating-buttons {
        bottom: 20px;
        right: 20px;
        gap: 12px;
    }

    .float-btn {
        width: 50px;
        height: 50px;
    }

    .float-btn svg {
        width: 22px;
        height: 22px;
    }
}

/* Extra small devices */
@media (max-width: 360px) {
    .contact-form-box {
        padding: 20px 15px !important;
    }

    .contact-form input,
    .contact-form textarea,
    .contact-form select {
        padding: 8px 12px !important;
        font-size: 12px !important;
    }
}