/* Base */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #FAF6EE; font-family: 'Work Sans', system-ui, sans-serif; color: #1C1A18; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
input, select { font-family: inherit; }
:focus-visible { outline: 3px solid #C0441E; outline-offset: 2px; }

/* Animations */
@keyframes fadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* Nav responsive */
[data-nav-hamburger] { display: none; }
@media (max-width: 880px) {
  [data-nav-links] { display: none !important; }
  [data-nav-hamburger] { display: inline-flex !important; }
}

/* Mobile menu — hidden by default, toggled via .is-open */
#mobile-menu {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 150;
  background: #1C1A18;
  flex-direction: column;
  padding: 24px;
}
#mobile-menu.is-open {
  display: flex !important;
  animation: fadeIn 200ms ease-in-out both;
}

/* Services grid — 1 column on mobile */
@media (max-width: 640px) {
  .services-grid {
    grid-template-columns: 1fr !important;
  }
  .services-grid [style*="grid-column: span 2"] {
    grid-column: span 1 !important;
  }
}

/* Testimonials — horizontal scroll snap on mobile */
@media (max-width: 768px) {
  .testimonials-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 16px !important;
    padding-bottom: 16px;
    /* hide scrollbar visually */
    scrollbar-width: none;
  }
  .testimonials-grid::-webkit-scrollbar {
    display: none;
  }
  .testimonials-grid figure {
    flex: 0 0 85vw;
    max-width: 320px;
    scroll-snap-align: start;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; animation-delay: 0ms !important; }
}
