/* ================================================================
   GREY SPACE IT — Responsive Utilities
   Breakpoints: mobile < 640px | tablet 640–1024px | desktop > 1024px
   ================================================================ */

/* ---- Fluid type & spacing ---- */
:root {
  --page-px: clamp(16px, 4vw, 40px);
  --section-py: clamp(48px, 8vw, 120px);
  --hero-fs: clamp(40px, 6vw, 88px);
  --h2-fs: clamp(28px, 4vw, 64px);
  --h3-fs: clamp(22px, 2.5vw, 36px);
}

/* ---- Page-level containers ---- */
.gs-page-wrap {
  max-width: 1440px;
  margin: 0 auto;
  padding-left: var(--page-px);
  padding-right: var(--page-px);
}

/* ---- Responsive grid helpers ---- */
@media (max-width: 1024px) {
  .gs-2col { grid-template-columns: 1fr !important; }
  .gs-3col { grid-template-columns: repeat(2, 1fr) !important; }
  .gs-4col { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 640px) {
  .gs-2col, .gs-3col, .gs-4col { grid-template-columns: 1fr !important; }
}

/* ---- Nav ---- */
.gs-nav-links { display: flex; }
.gs-nav-hamburger { display: none; }
.gs-nav-mobile-menu {
  display: none;
  position: fixed; inset: 0; top: 73px;
  background: rgba(246,246,247,0.98);
  backdrop-filter: blur(16px);
  z-index: 49;
  flex-direction: column;
  padding: 24px var(--page-px);
  gap: 4px;
  border-top: 1px solid var(--border);
  overflow-y: auto;
}
.gs-nav-mobile-menu.open { display: flex; }

@media (max-width: 1024px) {
  .gs-nav-links { display: none !important; }
  .gs-nav-hamburger { display: flex !important; }
}

/* ---- Slider ---- */
.gs-slider-inner {
  height: 493px;
}
.gs-slide-grid {
  grid-template-columns: 1.1fr 1fr;
}
@media (max-width: 1024px) {
  .gs-slider-inner { height: auto !important; }
  .gs-slide-grid { grid-template-columns: 1fr !important; }
  .gs-slide-diagram { display: none !important; }
}
@media (max-width: 640px) {
  .gs-slider-inner { min-height: 420px; }
}

/* ---- Sections ---- */
@media (max-width: 1024px) {
  .gs-whatwedo-grid { grid-template-columns: 1fr !important; }
  .gs-whatwedo-sticky { position: static !important; }
  .gs-services-row { grid-template-columns: 1fr 1fr auto !important; }
  .gs-footer-grid { grid-template-columns: 1fr !important; gap: 48px !important; }
  .gs-footer-sitemap { grid-template-columns: repeat(2, 1fr) !important; }
  .gs-newsletter-grid { grid-template-columns: 1fr !important; gap: 20px !important; }
  .gs-testimonial-quote { font-size: clamp(22px, 3.5vw, 38px) !important; }
  .gs-cta-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 640px) {
  .gs-services-row { grid-template-columns: 1fr !important; }
  .gs-footer-sitemap { grid-template-columns: 1fr !important; }
  .gs-stats-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .gs-newsletter-form { min-width: unset !important; width: 100% !important; }
  .gs-page-hero-h1 { font-size: clamp(36px, 8vw, 88px) !important; }
}

/* ---- Testimonials ---- */
@media (max-width: 768px) {
  .gs-test-quotemark { font-size: 64px !important; }
  .gs-test-meta-grid {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    margin-top: 36px !important;
    padding-top: 22px !important;
    align-items: start !important;
  }
  .gs-test-metric { text-align: left !important; }
  .gs-test-metric > div:first-child { font-size: 26px !important; }
  .gs-test-controls { gap: 10px !important; margin-top: 32px !important; }
  .gs-test-controls > div:first-child { margin-right: 0 !important; }
}
@media (max-width: 480px) {
  .gs-test-quotemark { font-size: 52px !important; }
  .gs-test-author { gap: 12px !important; }
  .gs-test-author > div:first-child { width: 40px !important; height: 40px !important; font-size: 12px !important; }
  .gs-test-name { font-size: 14px !important; }
  .gs-test-title { font-size: 12px !important; }
  .gs-test-sep { display: block !important; height: 0 !important; margin: 0 !important; visibility: hidden; }
}

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

/* ---- Global touch defaults ---- */
@media (max-width: 1024px) {
  .gs-slider-box, .gs-testimonials-section {
    touch-action: pan-y;
  }
  html, body { overflow-x: hidden; }
}
@media (max-width: 480px) {
  /* Tighten slider section padding */
  .gs-slider-box { border-radius: 14px !important; }
}
