/* ==================================================================
   LeanFab Laser Engineering — Responsive Stylesheet
   All @media rules from styles.css, in the same section order.
   Loaded after styles.css.
   ================================================================== */

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

@media (max-width: 640px) {
  .container { padding: 0 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal-stagger > * { opacity: 1; transform: none; }
}

@media (max-width: 920px) {
  .nav-links, .nav-cert, .nav-cta { display: none; }
  .nav-toggle { display: flex; }
}

@media (max-width: 980px) {
  .hero-inner { grid-template-columns: 1fr; }
  .hero { min-height: auto; padding-top: 2.5rem; }
  .hero-visual { max-width: 480px; }
}

@media (max-width: 560px) {
  .hero-btns { flex-direction: column; align-items: stretch; }
  .readout-grid { grid-template-columns: 1fr 1fr; gap: 0.9rem; }
}

@media (max-width: 880px) {
  .statbar-grid { grid-template-columns: repeat(3, 1fr); gap: 1.5rem 1rem; }
}

@media (max-width: 480px) {
  .statbar-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 920px) {
  .about-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .about-grid > .about-photo { max-height: min(300px, 58vw); }
  .about-grid > .about-photo img { height: min(300px, 58vw); max-height: 300px; }
}

/* About pillars: 4×1 in styles.css by default; 2×2 mid screens; 1 column at 560px below */
@media (max-width: 1100px) {
  .about-pillars { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .about-pillars { grid-template-columns: 1fr; }
  .gauge-wrap { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 920px) {
  .services-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
  .services-grid { grid-template-columns: 1fr; }
}

@media (max-width: 880px) {
  .fac-layout, .fac-highlight-row { grid-template-columns: 1fr; }
}

@media (max-width: 920px) { .industries-grid { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 480px) { .industries-grid { grid-template-columns: 1fr; } }

@media (max-width: 880px) { .cust-groups { grid-template-columns: 1fr; } }

@media (max-width: 640px) { .cust-stats-row { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 820px) {
  .director-card { padding: 2rem 1.5rem; }
  .director-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .director-portrait { width: 100px; height: 100px; font-size: 32px; }
}

@media (max-width: 920px) { .why-grid { grid-template-columns: 1fr 1fr; } }

@media (max-width: 560px) { .why-grid { grid-template-columns: 1fr; } }

@media (max-width: 820px) {
  .process-row { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
  .process-row::before { display: none; }
}

@media (max-width: 480px) { .process-row { grid-template-columns: 1fr; } }

@media (max-width: 760px) {
  .gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 160px; }
  .gallery-grid .g-item:first-child { grid-column: span 2; grid-row: span 1; }
}

@media (max-width: 560px) {
  .gallery-lightbox-panel {
    width: calc(100vw - 1rem);
    max-height: min(92vh, 900px);
    border-radius: 12px;
  }
  .gallery-lightbox-header { padding: 0.75rem 0.85rem 0.75rem 1rem; }
  .gallery-lightbox-scroll { padding: 0.75rem 0.85rem 1rem; }
  .gallery-lightbox-grid {
    grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
    gap: 8px;
  }
  .gallery-viewer-inner {
    padding-top: max(3.35rem, calc(env(safe-area-inset-top, 0px) + 2.85rem));
    padding-right: max(0.65rem, calc(env(safe-area-inset-right, 0px) + 0.45rem));
    padding-left: max(0.65rem, env(safe-area-inset-left, 0px));
    padding-bottom: max(1rem, env(safe-area-inset-bottom, 0px));
    width: 100%;
  }
  .gallery-viewer-nav {
    width: 42px;
    height: 42px;
  }
  .gallery-viewer-prev {
    left: max(0.05rem, env(safe-area-inset-left, 0px));
  }
  .gallery-viewer-next {
    right: max(0.05rem, env(safe-area-inset-right, 0px));
  }
  .gallery-viewer-close {
    top: max(0.35rem, calc(env(safe-area-inset-top, 0px) + 0.25rem));
    right: max(0.35rem, calc(env(safe-area-inset-right, 0px) + 0.25rem));
    width: 46px;
    height: 46px;
  }
  .gallery-viewer-frame img {
    max-height: min(70vh, 620px);
    max-width: calc(100% - 3.5rem);
  }
}

/* Fullscreen photo viewer: short landscape viewports (image can crowd the top chrome) */
@media (max-height: 500px) and (orientation: landscape) {
  .gallery-viewer-inner {
    padding-top: max(2.85rem, calc(env(safe-area-inset-top, 0px) + 2.35rem));
    padding-bottom: max(0.4rem, env(safe-area-inset-bottom, 0px));
    gap: 0.45rem;
  }
  .gallery-viewer-frame img {
    max-height: min(62dvh, 62vh, 520px);
    max-width: calc(100% - 3.75rem);
  }
}

@media (max-width: 920px) {
  .contact-grid { grid-template-columns: 1fr; gap: 2.25rem; }
}

@media (max-width: 920px) {
  .careers-layout { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .form-row-2 { grid-template-columns: 1fr; }
  .contact-form-card { padding: 1.4rem; }
}

@media (max-width: 880px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
}

@media (max-width: 560px) {
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
}
