/* ==============================================
   RESPONSIVE STYLES
   ============================================== */

/* Large Tablet/Small Desktop Styles (769px - 1024px) */
@media (max-width: 1024px) and (min-width: 769px) {
    /* Navigation adjustments for large tablets */
    .nav-links {
        gap: 1.5rem; /* Reduce spacing between nav items */
    }
    
    .nav-links .nav-cta {
        padding: 0.4rem 1rem; /* Smaller CTA button */
        font-size: 0.9rem;
    }
    
    /* Hero section refinements */
    .hero-content {
        grid-template-columns: 1fr;
        gap: 3rem;
        padding: 0 1.5rem;
    }
    
    .hero-left {
        text-align: center;
    }
    
    .hero h1 {
        font-size: 3rem; /* Slightly smaller than desktop */
    }
    
    .hero .subtitle {
        font-size: 1.2rem;
    }
    
    .hero-form {
        max-width: 400px; /* Constrain form width */
    }
    
    /* Services grid - 2 columns for large tablets */
    .services-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.5rem;
    }
    
    /* Timeline adjustments */
    .timeline {
        max-width: 700px; /* Slightly smaller container */
    }
    
    .direction-l,
    .direction-r {
        width: 320px; /* Reduce width for better fit */
    }
    
    /* Pricing card */
    .pricing-card {
        max-width: 450px;
        padding: 2.5rem 2rem;
    }
    
    /* FAQ adjustments */
    .faq-container {
        max-width: 700px;
    }
    
    .faq-question {
        font-size: 1.05rem;
    }
}

/* Small Tablet Styles (481px - 768px) */
@media (max-width: 768px) and (min-width: 481px) {
    /* Navigation - transition to mobile menu */
    .mobile-menu-btn {
        display: block;
    }

    .nav-links {
        display: none;
    }

    .logo {
        height: 64px; /* Intermediate size */
    }

    /* Hero Section */
    .hero-content {
        grid-template-columns: 1fr;
        gap: 2.5rem;
        padding: 0 1.5rem;
    }

    .hero-left {
        text-align: center;
    }

    .hero h1 {
        font-size: 2.8rem;
    }

    .hero .subtitle {
        font-size: 1.15rem;
    }

    .cta-buttons {
        justify-content: center;
        gap: 1rem;
    }

    .hero-form {
        max-width: 100%;
    }

    /* Services - single column but larger cards */
    .services-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .service-card {
        padding: 2.5rem 2rem;
    }

    /* Timeline - simplified but not full mobile */
    .timeline {
        width: 100%;
        padding: 1.5em 0;
        margin: 0 1.5rem;
    }

    .timeline:before {
        left: 40px;
        margin-left: 0;
    }

    .timeline li {
        padding: 2em 0;
    }

    .direction-l,
    .direction-r {
        float: none;
        width: 100%;
        text-align: left;
        padding-left: 80px;
    }

    .direction-l .flag:before,
    .direction-r .flag:before {
        left: -45px;
    }

    /* FAQ */
    .faq-question {
        padding: 1.2rem;
        font-size: 1rem;
    }

    .faq-answer.active {
        padding: 1.2rem;
    }

    /* Contact Page */
    .contact-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .contact-info,
    .contact-form-container {
        padding: 2rem;
    }
}

/* Mobile Styles (Up to 480px) */
@media (max-width: 480px) {
    /* Navigation */
    .mobile-menu-btn {
        display: block;
    }

    .nav-links {
        display: none;
    }

    .logo {
        height: 56px; /* Smallest size for mobile */
    }

    /* Hero Section */
    .hero {
        padding: 100px 0 60px; /* Reduce vertical padding */
    }
    
    .hero-content {
        grid-template-columns: 1fr;
        gap: 2rem;
        padding: 0 1rem;
    }

    .hero-left {
        text-align: center;
    }

    .hero h1 {
        font-size: 2.2rem;
        line-height: 1.1;
    }

    .hero .subtitle {
        font-size: 1rem;
    }

    .cta-buttons {
        justify-content: center;
        align-items: center;
        gap: 0.8rem;
        flex-wrap: wrap;
    }
    
    .btn {
        padding: 0.8rem 1.5rem;
        font-size: 0.9rem;
    }

    .hero-form {
        max-width: 100%;
        padding: 1.5rem;
    }

    .form-row {
        grid-template-columns: 1fr;
        gap: 0;
    }

    /* Services */
    .services-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    
    .service-card {
        padding: 2rem 1.5rem;
    }
    
    .service-icon {
        width: 60px;
        height: 60px;
        font-size: 1.5rem;
    }

    /* Timeline Mobile */
    .timeline {
        width: 100%;
        padding: 1em 0;
        margin: 0 1rem;
    }

    .timeline:before {
        left: 30px;
        margin-left: 0;
    }

    .timeline li {
        padding: 1.5em 0;
    }

    .direction-l,
    .direction-r {
        float: none;
        width: 100%;
        text-align: left;
        padding-left: 70px;
    }

    .flag-wrapper {
        text-align: left;
    }

    .flag {
        background: var(--light);
        z-index: 15;
        display: block;
        margin-bottom: 1rem;
        padding: 0.8rem 1rem;
    }

    .direction-l .flag:before,
    .direction-r .flag:before {
        position: absolute;
        top: 50%;
        left: -35px;
        margin-top: -8px;
        margin-left: 0;
        background: var(--light);
        border: 4px solid var(--accent);
    }

    .direction-l .flag:after,
    .direction-r .flag:after {
        content: "";
        position: absolute;
        left: -8px;
        top: 50%;
        height: 0;
        width: 0;
        margin-top: -8px;
        margin-left: 0;
        border: solid transparent;
        border-right-color: var(--light);
        border-width: 8px;
    }

    .step-number {
        margin: 0 0.8rem 0 0;
        width: 32px;
        height: 32px;
        line-height: 32px;
        font-size: 1rem;
    }

    .direction-r .step-number {
        margin: 0 0.8rem 0 0;
    }

    .step-desc {
        margin: 0;
        text-align: left;
        padding: 0;
        font-size: 0.85rem;
    }

    .direction-l .step-desc,
    .direction-r .step-desc {
        margin: 0;
        padding: 0;
    }

    /* Mobile timeline images */
    .timeline-image {
        width: 70px;
        height: auto;
        float: none;
        margin: 1rem auto;
        display: block;
    }

    .direction-l .timeline-image,
    .direction-r .timeline-image {
        float: none;
        margin: 1rem auto;
        display: block;
    }

    /* Pricing */
    .pricing-card {
        padding: 2rem 1.5rem;
        margin: 0 1rem;
    }
    
    .price {
        font-size: 2.5rem;
    }

    /* FAQ */
    .faq-question {
        padding: 1rem;
        font-size: 0.95rem;
    }

    .faq-answer.active {
        padding: 1rem;
    }

    .faq-image-container {
        width: 100%;
    }
    
    .faq-image-container img {
        max-width: 200px;
    }

    /* Contact Page */
    .contact-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    /* Reorder grid items for mobile - form first, then contact info */
    .contact-form-container {
        order: 1;
    }

    .contact-info {
        order: 2;
    }

    .contact-info,
    .contact-form-container {
        padding: 1.5rem;
    }
    
    .contact-method {
        margin-bottom: 1.5rem;
    }

    /* 404 Page */
    .error-content {
        padding: 80px 0 50px;
    }

    .error-number {
        font-size: 4rem;
    }

    .error-title {
        font-size: 1.8rem;
    }

    .error-subtitle {
        font-size: 1rem;
    }

    .error-actions {
        flex-direction: column;
        align-items: center;
        gap: 1rem;
    }

    .links-grid {
        grid-template-columns: 1fr;
    }

    /* Footer */
    .footer-contact {
        flex-direction: column;
        gap: 1rem;
    }
    
    .phone-numbers {
        font-size: 0.9rem;
    }
    
    /* Section spacing adjustments */
    .section {
        padding: 60px 0;
    }
    
    .section-title {
        font-size: 1.8rem;
        margin-bottom: 0.8rem;
    }
    
    .section-subtitle {
        font-size: 1rem;
        margin-bottom: 2rem;
    }
}
