/* Responsive Design */

/* Introduction Section - 2 Column Layout */
@media (max-width: 1024px) {
    /* Adjust 2-column intro grid to maintain on medium screens */
    section[style*="background: #f9f9f9"] > .container > div[style*="grid-template-columns: 1fr 1fr"] {
        grid-template-columns: 1fr 1fr !important;
    }
}

/* Services Grid - 3 Column Layout */
@media (max-width: 1024px) {
    /* Adjust 3-column grid to 2 columns on medium screens */
    div[style*="grid-template-columns: repeat(3"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* Benefits Grid - 4 Column Layout */
@media (max-width: 1024px) {
    /* Adjust 4-column grid to 2 columns on medium screens */
    div[style*="grid-template-columns: repeat(4"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* Tablets (768px and below) */
@media (max-width: 768px) {
    /* Typography */
    h1 {
        font-size: var(--font-size-4xl);
    }

    h2 {
        font-size: var(--font-size-3xl);
    }

    h3 {
        font-size: var(--font-size-xl);
    }

    /* Introduction Section - Stack to 1 column on tablets */
    section[style*="background: #f9f9f9"] > .container > div[style*="grid-template-columns: 1fr 1fr"] {
        grid-template-columns: 1fr !important;
        gap: 2rem !important;
    }

    /* Services Grid - Stack to 1 column on tablets */
    div[style*="grid-template-columns: repeat(3"] {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
    }

    /* Benefits Grid - Stack to 1 column on tablets */
    div[style*="grid-template-columns: repeat(4"] {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
    }

    /* Navigation */
    .navbar-toggle {
        display: flex;
    }

    .navbar-menu {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background-color: var(--bg-primary);
        flex-direction: column;
        gap: 0;
        max-height: 0;
        overflow: hidden;
        transition: max-height var(--transition-base);
        border-bottom: 1px solid var(--border-color);
    }

    .navbar-menu.active {
        max-height: 500px;
    }

    .navbar-menu li {
        border-bottom: 1px solid var(--border-color);
    }

    .nav-link {
        display: block;
        padding: var(--spacing-lg);
    }

    .nav-cta {
        margin: var(--spacing-md);
        border-radius: var(--radius-md);
    }

    /* Hero Section */
    .hero .container {
        grid-template-columns: 1fr;
        gap: var(--spacing-2xl);
    }

    .hero-title {
        font-size: var(--font-size-4xl);
    }

    .hero-cta {
        flex-direction: column;
    }

    .hero-stats {
        grid-template-columns: 1fr;
    }

    .hero-visual {
        height: 300px;
    }

    /* Comparison Grid */
    .comparison-grid {
        grid-template-columns: 1fr;
    }

    /* Services Grid */
    .services-grid {
        grid-template-columns: 1fr;
    }

    /* Process Steps */
    .process-steps {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Case Studies Grid */
    .case-studies-grid {
        grid-template-columns: 1fr;
    }

    /* Testimonials */
    .testimonials-carousel {
        grid-template-columns: 1fr;
    }

    /* Pricing Grid */
    .pricing-grid {
        grid-template-columns: 1fr;
    }

    .pricing-card.featured {
        transform: scale(1);
    }

    /* FAQ Grid */
    .faq-grid {
        grid-template-columns: 1fr;
    }

    /* Blog Grid */
    .blog-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Contact Grid */
    .contact-grid {
        grid-template-columns: 1fr;
    }

    /* Footer */
    .footer-content {
        grid-template-columns: repeat(2, 1fr);
    }

    .footer-bottom {
        flex-direction: column;
        gap: var(--spacing-lg);
        text-align: center;
    }

    /* Sections */
    section {
        padding: var(--spacing-3xl) 0;
    }

    /* Case Study Body */
    .case-study-body {
        grid-template-columns: 1fr;
    }

    /* Newsletter Form */
    .newsletter-form {
        flex-direction: column;
    }

    .newsletter-form input {
        width: 100%;
    }

    .newsletter-form button {
        width: 100%;
    }

    /* Comparison Table */
    .comparison-table-wrapper {
        font-size: var(--font-size-sm);
    }

    .comparison-table th,
    .comparison-table td {
        padding: var(--spacing-md);
    }
}

/* Mobile (480px and below) */
@media (max-width: 480px) {
    /* Container */
    .container {
        padding: 0 var(--spacing-md);
    }

    /* Typography */
    h1 {
        font-size: var(--font-size-3xl);
    }

    h2 {
        font-size: var(--font-size-2xl);
    }

    h3 {
        font-size: var(--font-size-lg);
    }

    /* Spacing */
    section {
        padding: var(--spacing-2xl) 0;
    }

    .section-title {
        margin-bottom: var(--spacing-lg);
    }

    /* Hero Section */
    .hero {
        padding: var(--spacing-2xl) 0;
    }

    .hero-title {
        font-size: var(--font-size-3xl);
    }

    .hero-subtitle {
        font-size: var(--font-size-base);
    }

    .hero-stats {
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
    }

    .stat-number {
        font-size: var(--font-size-3xl);
    }

    .hero-visual {
        height: 250px;
    }

    .floating-card {
        padding: var(--spacing-md);
        font-size: var(--font-size-sm);
    }

    .floating-card .icon {
        font-size: var(--font-size-3xl);
    }

    /* Process Steps */
    .process-steps {
        grid-template-columns: 1fr;
    }

    .step-number {
        width: 50px;
        height: 50px;
        font-size: var(--font-size-xl);
    }

    /* Blog Grid */
    .blog-grid {
        grid-template-columns: 1fr;
    }

    /* Testimonials */
    .testimonial-author {
        flex-direction: column;
        text-align: center;
    }

    .author-image {
        width: 60px;
        height: 60px;
    }

    /* Pricing */
    .pricing-card {
        padding: var(--spacing-lg);
    }

    .amount {
        font-size: var(--font-size-3xl);
    }

    /* FAQ */
    .faq-question {
        padding: var(--spacing-md);
    }

    .faq-answer {
        padding: 0 var(--spacing-md) var(--spacing-md);
    }

    /* Contact */
    .contact-form-wrapper {
        padding: var(--spacing-lg);
    }

    .contact-info {
        gap: var(--spacing-lg);
    }

    /* Footer */
    .footer-content {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }

    .footer-bottom {
        flex-direction: column;
        gap: var(--spacing-md);
    }

    .footer-links {
        flex-direction: column;
        gap: var(--spacing-sm);
    }

    /* Forms */
    .form-group {
        margin-bottom: var(--spacing-md);
    }

    .form-group input,
    .form-group textarea,
    .form-group select {
        padding: var(--spacing-sm);
        font-size: 16px; /* Prevents zoom on iOS */
    }

    /* Share buttons */
    .share-buttons {
        flex-direction: column;
    }

    .share-btn {
        width: 100%;
        text-align: center;
    }

    /* Breadcrumb */
    .breadcrumb .container {
        font-size: var(--font-size-sm);
    }

    /* Page Hero */
    .page-hero {
        padding: var(--spacing-2xl) 0;
    }

    .page-hero h1 {
        font-size: var(--font-size-3xl);
    }

    .page-hero p {
        font-size: var(--font-size-base);
    }

    /* Blog Post */
    .post-meta {
        flex-direction: column;
        gap: var(--spacing-md);
    }

    .author-avatar {
        width: 60px;
        height: 60px;
    }

    /* Comparison Table */
    .comparison-table-wrapper {
        font-size: var(--font-size-xs);
    }

    .comparison-table th,
    .comparison-table td {
        padding: var(--spacing-sm);
    }

    /* Case Study */
    .case-meta {
        flex-direction: column;
        gap: var(--spacing-md);
    }

    .case-meta span {
        width: 100%;
        text-align: center;
    }

    /* Newsletter */
    .newsletter {
        padding: var(--spacing-2xl) 0;
    }

    .newsletter h2 {
        font-size: var(--font-size-2xl);
    }

    /* CTA Section */
    .cta-section {
        padding: var(--spacing-2xl) 0;
    }

    .cta-section h2 {
        font-size: var(--font-size-2xl);
    }

    .cta-section p {
        font-size: var(--font-size-base);
    }

    /* Map */
    .map-container {
        height: 300px;
    }

    /* Social Links */
    .social-links {
        gap: var(--spacing-sm);
    }

    .social-links a {
        padding: var(--spacing-sm) var(--spacing-md);
        font-size: var(--font-size-xs);
    }

    /* Mission Cards */
    .mission-grid {
        grid-template-columns: 1fr;
    }

    /* Team Grid */
    .team-grid {
        grid-template-columns: 1fr;
    }

    /* Stats Grid */
    .stats-grid {
        grid-template-columns: 1fr;
    }

    /* About Content */
    .about-content {
        grid-template-columns: 1fr;
    }

    .about-image {
        margin-top: var(--spacing-lg);
    }
}

/* Extra small devices (320px and below) */
@media (max-width: 320px) {
    /* Typography */
    h1 {
        font-size: var(--font-size-2xl);
    }

    h2 {
        font-size: var(--font-size-xl);
    }

    h3 {
        font-size: var(--font-size-base);
    }

    /* Container */
    .container {
        padding: 0 var(--spacing-sm);
    }

    /* Hero */
    .hero-title {
        font-size: var(--font-size-2xl);
    }

    .hero-subtitle {
        font-size: var(--font-size-sm);
    }

    /* Spacing */
    section {
        padding: var(--spacing-lg) 0;
    }

    /* Forms */
    .form-group input,
    .form-group textarea,
    .form-group select {
        font-size: 16px;
    }
}

/* Large screens (1200px and above) */
@media (min-width: 1200px) {
    .container {
        max-width: 1200px;
    }

    /* Enhanced animations for larger screens */
    .floating-card {
        animation: float 4s ease-in-out infinite;
    }

    /* Hover effects */
    .service-card:hover {
        transform: translateY(-12px);
    }

    .case-study-card:hover {
        transform: translateY(-12px);
    }

    .blog-card:hover {
        transform: translateY(-12px);
    }
}

/* Print styles */
@media print {
    .navbar,
    .footer,
    .cta-section,
    .newsletter {
        display: none;
    }

    body {
        font-size: 12pt;
        color: #000;
        background: #fff;
    }

    a {
        text-decoration: underline;
    }

    h1, h2, h3, h4, h5, h6 {
        page-break-after: avoid;
    }

    p {
        page-break-inside: avoid;
    }
}

/* Landscape orientation */
@media (orientation: landscape) and (max-height: 500px) {
    section {
        padding: var(--spacing-lg) 0;
    }

    .hero {
        padding: var(--spacing-lg) 0;
    }

    .hero-title {
        font-size: var(--font-size-3xl);
    }
}

/* High DPI screens */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    /* Optimize for retina displays */
    img {
        image-rendering: -webkit-optimize-contrast;
    }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Dark mode */
@media (prefers-color-scheme: dark) {
    body {
        background-color: var(--bg-primary);
        color: var(--text-primary);
    }

    .navbar {
        background-color: var(--bg-secondary);
    }

    .service-card,
    .case-study-card,
    .blog-card,
    .pricing-card,
    .testimonial-card {
        background-color: var(--bg-secondary);
    }
}
