/* ============================================================
   Dynamic Manufacturing Inc - Responsive Stylesheet
   Breakpoints: 1200px (lg), 960px (md/tablet), 600px (sm/mobile)
   ============================================================ */

/* ============================================================
   Large screens (≤ 1200px)
   ============================================================ */
@media screen and (max-width: 1200px) {
    .footer-grid {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .footer-brand {
        grid-column: 1 / -1;
        display: flex;
        align-items: center;
        gap: 40px;
    }

    .footer-brand p {
        max-width: 480px;
        margin-top: 0;
    }

    .stats-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
}

/* ============================================================
   Tablet (≤ 960px)
   ============================================================ */
@media screen and (max-width: 960px) {
    /* Typography */
    h1 { font-size: 40px !important; }
    h2 { font-size: 32px !important; }
    h3 { font-size: 28px !important; }
    h4 { font-size: 24px !important; }

    /* Hide desktop nav, show hamburger */
    .top-menu {
        display: none;
    }

    .hamburger-btn {
        display: flex;
    }

    /* Hero carousel */
    .hero-carousel {
        height: 60vw;
        min-height: 360px;
        max-height: 560px;
    }

    .carousel-content h1 {
        font-size: 2.25rem;
    }

    .carousel-content p {
        font-size: 1rem;
    }

    .carousel-content {
        padding: 0 32px;
    }

    /* Page hero */
    .page-hero {
        height: 280px;
    }

    .page-hero-content {
        padding: 0 32px;
    }

    .page-hero-content h1 {
        font-size: 2rem;
    }

    /* Grids */
    .grid-3 {
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }

    .grid-4 {
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }

    .intro-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .feature-row {
        grid-template-columns: 1fr;
        direction: ltr;
    }

    .feature-row.reverse {
        direction: ltr;
    }

    .feature-row-img {
        min-height: 280px;
        height: 280px;
    }

    .feature-row-content {
        padding: 40px 32px;
    }

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

    /* Footer */
    .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
    }

    .footer-brand {
        grid-column: 1 / -1;
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .team-grid {
        grid-template-columns: 1fr 1fr;
        gap: 24px;
    }

    .timeline::before {
        left: 20px;
    }

    .timeline-item {
        padding-right: 0;
        padding-left: 60px;
        justify-content: flex-start;
    }

    .timeline-item:nth-child(even) {
        padding-left: 60px;
        padding-right: 0;
        justify-content: flex-start;
    }

    .timeline-item::after {
        left: 11px;
    }

    .timeline-content {
        max-width: 100%;
    }

    .image-grid {
        grid-template-columns: 1fr 1fr;
        gap: 16px;
    }

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

    .sub-page-cards {
        grid-template-columns: 1fr 1fr;
    }

    .stats-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .certs-inner {
        gap: 40px;
    }
}

/* ============================================================
   Mobile (≤ 600px)
   ============================================================ */
@media screen and (max-width: 600px) {
    /* Typography */
    h1 { font-size: 32px !important; }
    h2 { font-size: 28px !important; }
    h3 { font-size: 24px !important; }
    h4 { font-size: 20px !important; }

    .process-carousel { height: 300px; }

    .max-content {
        padding: 0 16px;
    }

    /* Hero carousel */
    .hero-carousel {
        height: 75vw;
        min-height: 320px;
        max-height: 480px;
    }

    .carousel-content h1 {
        font-size: 1.875rem;
    }

    .carousel-content p {
        font-size: 0.9375rem;
        margin-bottom: 1.25rem;
    }

    .carousel-content {
        padding: 0 20px;
    }

    .carousel-buttons {
        flex-direction: column;
        gap: 10px;
    }

    .carousel-buttons .btn {
        width: 100%;
        text-align: center;
        justify-content: center;
    }

    .carousel-prev,
    .carousel-next {
        width: 36px;
        height: 36px;
        font-size: 1rem;
    }

    /* Page hero */
    .page-hero {
        height: 220px;
    }

    .page-hero-content {
        padding: 0 20px;
    }

    .page-hero-content h1 {
        font-size: 1.75rem;
    }

    .page-hero-content p {
        font-size: 0.9375rem;
    }

    /* Grids */
    .grid-3 {
        grid-template-columns: 1fr;
    }

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

    .grid-4 {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }

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

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

    .image-grid-2 {
        grid-template-columns: 1fr;
    }

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

    .sub-page-cards {
        grid-template-columns: 1fr;
    }

    .stats-grid {
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }

    .stat-item h3 {
        font-size: 2rem;
    }

    /* Sections */
    .section-padding {
        padding: 40px 0;
    }

    .services-section {
        padding: 48px 0;
    }

    .cta-section {
        padding: 48px 0;
    }

    .cta-section h2 {
        font-size: 1.6rem;
    }

    .cta-buttons {
        flex-direction: column;
        align-items: center;
    }

    .cta-buttons .btn {
        width: 100%;
        max-width: 300px;
    }

    .feature-row-content {
        padding: 32px 20px;
    }

    /* Footer */
    .footer {
        padding: 48px 0 0;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .footer-brand {
        grid-column: auto;
    }

    .footer-bottom {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    /* Contact */
    #Map {
        height: 320px;
    }

    .contact-item {
        gap: 12px;
    }

    /* Certifications */
    .certs-inner {
        gap: 28px;
    }

    .cert-item img {
        height: 90px;
    }

    /* Nav logo */
    .nav-logo img {
        height: 36px;
    }

    /* Sections */
    .supplier-requirements {
        padding: 24px 20px;
    }

    .section-heading {
        margin-bottom: 32px;
    }

    /* Cards */
    .service-card-img {
        height: 200px;
    }
}

/* ============================================================
   Very small (≤ 400px)
   ============================================================ */
@media screen and (max-width: 400px) {
    h1 { font-size: 26px !important; }

    .carousel-content h1 {
        font-size: 1.5rem;
    }

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

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

    .certs-inner {
        flex-direction: column;
        align-items: center;
    }
}

/* ============================================================
   Print
   ============================================================ */
@media print {
    .appbar,
    .hamburger-btn,
    .mobile-drawer,
    #scroll-top,
    .carousel-prev,
    .carousel-next,
    .carousel-dots {
        display: none !important;
    }

    main {
        margin-top: 0;
    }

    .hero-carousel,
    .page-hero {
        height: auto;
        min-height: auto;
    }

    .carousel-overlay,
    .page-hero-overlay {
        position: relative;
    }

    body {
        font-size: 12pt;
    }
}
